[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] mm: Fix Converting PTE to PFN



On x86_64 system, (pte >> PAGE_SHIFT) is not always equal to page frame
number because high bits (63:52) of pte may be used as flags. This patch
corrects the conversion and errors as below disappear when applied.
    (XEN) mm.c:3074:d0 PTE entry 200000a2ec6167 for address a1f09958
    doesn't match frame a2ec6

Signed-off-by: Yosuke Iwamatsu <y-iwamatsu@xxxxxxxxxxxxx>

diff -r e66cecb66b1e xen/arch/x86/mm.c
--- a/xen/arch/x86/mm.c Wed Oct 08 14:00:58 2008 +0100
+++ b/xen/arch/x86/mm.c Thu Oct 09 14:14:13 2008 +0900
@@ -3067,7 +3067,7 @@ static int destroy_grant_pte_mapping(
     ol1e = *(l1_pgentry_t *)va;

     /* Check that the virtual address supplied is actually mapped to
frame. */
-    if ( unlikely((l1e_get_intpte(ol1e) >> PAGE_SHIFT) != frame) )
+    if ( unlikely(l1e_get_pfn(ol1e) != frame) )
     {
         page_unlock(page);
         MEM_LOG("PTE entry %lx for address %"PRIx64" doesn't match
frame %lx",


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.