From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patrick Colp Subject: [PATCH] Fix get_page_from_l1e and cleanup_page_cacheattr to use PGC_cacheattr_mask Date: Fri, 15 May 2009 09:37:19 +0100 Message-ID: <4A0D29BF.4000103@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1"; format=flowed 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 List-Id: xen-devel@lists.xenproject.org # HG changeset patch # User Patrick Colp # Date 1242295647 -3600 # Node ID c5098f5c5caf4174bd2e46d49d7b65109203f7c5 # Parent 2522cc95efd2f3fadf7342d18fe86e8f37f89c2a Fix get_page_from_l1e and cleanup_page_cacheattr to use PGC_cacheattr_mask. Signed-off-by: Patrick Colp diff -r 2522cc95efd2 -r c5098f5c5caf xen/arch/x86/mm.c --- a/xen/arch/x86/mm.c Mon May 11 13:52:04 2009 +0100 +++ b/xen/arch/x86/mm.c Thu May 14 11:07:27 2009 +0100 @@ -766,7 +766,7 @@ goto could_not_pin; if ( pte_flags_to_cacheattr(l1f) != - ((page->count_info >> PGC_cacheattr_base) & 7) ) + ((page->count_info & PGC_cacheattr_mask) >> PGC_cacheattr_base) ) { unsigned long x, nx, y = page->count_info; unsigned long cacheattr = pte_flags_to_cacheattr(l1f); @@ -782,7 +782,7 @@ return 0; } - while ( ((y >> PGC_cacheattr_base) & 7) != cacheattr ) + while ( ((y & PGC_cacheattr_mask) >> PGC_cacheattr_base) != cacheattr ) { x = y; nx = (x & ~PGC_cacheattr_mask) | (cacheattr << PGC_cacheattr_base); @@ -2389,7 +2389,8 @@ void cleanup_page_cacheattr(struct page_info *page) { - uint32_t cacheattr = (page->count_info >> PGC_cacheattr_base) & 7; + uint32_t cacheattr = + (page->count_info & PGC_cacheattr_mask) >> PGC_cacheattr_base; if ( likely(cacheattr == 0) ) return;