From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: [PATCH] fix xenctx with 32-on-64 domains Date: Thu, 03 Mar 2011 17:47:57 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Paolo Bonzini , xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On 03/03/2011 17:08, "Paolo Bonzini" wrote: > # HG changeset patch > # User Paolo Bonzini > # Date 1299171180 -3600 > # Node ID c639f0afaa74591d1053677b0a6348503a14fd78 > # Parent c923816861a96328aaf3d5ba8939fd9b4c441cd0 > fix xenctx with 32-on-64 domains > > When compiled on 64-bit, xenctx was using the 64-bit version > of xen_cr3_to_pfn even for 32-bit PV domains. This is wrong, > and this patch fixes it. I applied a better version (clearer, and also fixes 64-bit PV domU / 32-bit PV dom0) as c/s 22966. -- Keir > Signed-off-by: Paolo Bonzini > > diff --git a/tools/libxc/xc_pagetab.c b/tools/libxc/xc_pagetab.c > --- a/tools/libxc/xc_pagetab.c > +++ b/tools/libxc/xc_pagetab.c > @@ -64,8 +64,8 @@ unsigned long xc_translate_foreign_addre > paddr = ctx.x64.ctrlreg[3] & ~0xfffull; > } else { > pt_levels = 3; > - paddr = (((uint64_t) xen_cr3_to_pfn(ctx.x32.ctrlreg[3])) > - << PAGE_SHIFT); > + paddr = (((unsigned)ctx.x32.ctrlreg[3] >> 12) | > + ((unsigned)ctx.x32.ctrlreg[3] << 20)) << PAGE_SHIFT; > } > } > > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel