aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxc/xc_pagetab.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-03-31 11:32:56 +0100
committerKeir Fraser <keir.fraser@citrix.com>2009-03-31 11:32:56 +0100
commit03affb40e789671f1738560b2e2f2b0044e12fa3 (patch)
tree8947f04131df1cd87656a533ac2f55fb067d53e8 /tools/libxc/xc_pagetab.c
parentc9e8655cb793f0b0649c65b02f5963d41b43d334 (diff)
downloadxen-03affb40e789671f1738560b2e2f2b0044e12fa3.tar.gz
xen-03affb40e789671f1738560b2e2f2b0044e12fa3.tar.bz2
xen-03affb40e789671f1738560b2e2f2b0044e12fa3.zip
libxc: Fix xc_translate_foreign_address in non-paged mode
Returns paddr rather than gfn when in non-paged mode. Add a shift to fix it. Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
Diffstat (limited to 'tools/libxc/xc_pagetab.c')
-rw-r--r--tools/libxc/xc_pagetab.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/tools/libxc/xc_pagetab.c b/tools/libxc/xc_pagetab.c
index 00ee0f8ea4..1a4a3d01e5 100644
--- a/tools/libxc/xc_pagetab.c
+++ b/tools/libxc/xc_pagetab.c
@@ -32,7 +32,7 @@ unsigned long xc_translate_foreign_address(int xc_handle, uint32_t dom,
&ctx, sizeof ctx) != 0)
return 0;
if (!(ctx.cr0 & CR0_PG))
- return virt;
+ return virt >> PAGE_SHIFT;
pt_levels = (ctx.msr_efer&EFER_LMA) ? 4 : (ctx.cr4&CR4_PAE) ? 3 : 2;
paddr = ctx.cr3 & ((pt_levels == 3) ? ~0x1full : ~0xfffull);
} else {