WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH] Fix get_page_from_l1e and cleanup_page_cacheattr to

To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH] Fix get_page_from_l1e and cleanup_page_cacheattr to use PGC_cacheattr_mask
From: Patrick Colp <Patrick.Colp@xxxxxxxxxx>
Date: Thu, 14 May 2009 11:12:24 +0100
Delivery-date: Fri, 15 May 2009 06:32:45 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Patrick Colp <Patrick.Colp@xxxxxxxxxx>
# 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 <Patrick.Colp@xxxxxxxxxx>

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;

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