From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yosuke Iwamatsu Subject: [PATCH] mm: Fix Converting PTE to PFN Date: Thu, 09 Oct 2008 16:04:06 +0900 Message-ID: <48EDACE6.2080102@ab.jp.nec.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org 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 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",