File 19450-xc_translate_foreign_address.patch of Package xen

# HG changeset patch
# User Keir Fraser <keir.fraser@citrix.com>
# Date 1238495576 -3600
# Node ID 192bc11d750653225f3f4a90e078503cdaf003c2
# Parent  ef56cfbdd390b54ddf2e8c50ac4984db753618cb
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>

Index: xen-3.3.1-testing/tools/libxc/xc_pagetab.c
===================================================================
--- xen-3.3.1-testing.orig/tools/libxc/xc_pagetab.c
+++ xen-3.3.1-testing/tools/libxc/xc_pagetab.c
@@ -33,7 +33,7 @@ unsigned long xc_translate_foreign_addre
                                              &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 {
openSUSE Build Service is sponsored by