[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-4.0-testing] x86, libxc: Fix xc_translate_foreign_address() for PV guests of
# HG changeset patch # User Keir Fraser <keir@xxxxxxx> # Date 1299601399 0 # Node ID 92f9e492da44e6c0df9b423ccd35d3991cba7851 # Parent 3a1a7e071bb0a940bfbd38d9eddd067505b7a970 x86, libxc: Fix xc_translate_foreign_address() for PV guests of different bitness than dom0 (32-bit vs 64-bit). Original patch by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Keir Fraser <keir@xxxxxxx> xen-unstable changeset: 22966:de49500f344a xen-unstable date: Thu Mar 03 17:46:44 2011 +0000 --- diff -r 3a1a7e071bb0 -r 92f9e492da44 tools/include/xen-foreign/structs.py --- a/tools/include/xen-foreign/structs.py Thu Feb 24 09:36:23 2011 +0000 +++ b/tools/include/xen-foreign/structs.py Tue Mar 08 16:23:19 2011 +0000 @@ -53,6 +53,7 @@ # all archs "xen_pfn_to_cr3", + "xen_cr3_to_pfn", "XEN_LEGACY_MAX_VCPUS", "MAX_GUEST_CMDLINE" ]; diff -r 3a1a7e071bb0 -r 92f9e492da44 tools/libxc/xc_pagetab.c --- a/tools/libxc/xc_pagetab.c Thu Feb 24 09:36:23 2011 +0000 +++ b/tools/libxc/xc_pagetab.c Tue Mar 08 16:23:19 2011 +0000 @@ -46,11 +46,12 @@ return 0; if (domctl.u.address_size.size == 64) { pt_levels = 4; - paddr = ctx.x64.ctrlreg[3] & ~0xfffull; + paddr = (uint64_t)xen_cr3_to_pfn_x86_64(ctx.x64.ctrlreg[3]) + << PAGE_SHIFT; } else { pt_levels = 3; - paddr = (((uint64_t) xen_cr3_to_pfn(ctx.x32.ctrlreg[3])) - << PAGE_SHIFT); + paddr = (uint64_t)xen_cr3_to_pfn_x86_32(ctx.x32.ctrlreg[3]) + << PAGE_SHIFT; } } _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |