bitkeeper revision 1.1159.1.212 (416485874bmgh8xNVGGY3ZNzyzd9QQ)
authorcl349@freefall.cl.cam.ac.uk <cl349@freefall.cl.cam.ac.uk>
Wed, 6 Oct 2004 23:53:43 +0000 (23:53 +0000)
committercl349@freefall.cl.cam.ac.uk <cl349@freefall.cl.cam.ac.uk>
Wed, 6 Oct 2004 23:53:43 +0000 (23:53 +0000)
Make pmd_present test correct in writable pagetables mode.

linux-2.6.8.1-xen-sparse/include/asm-xen/asm-i386/pgtable.h

index 20dda455dc00789916de81b8a8bed24e015911eb..3c722ee573521e123b0bbec694fa448324622a11 100644 (file)
@@ -211,7 +211,9 @@ extern unsigned long pg0[];
 #define pte_clear(xp)  do { set_pte(xp, __pte(0)); } while (0)
 
 #define pmd_none(x)    (!pmd_val(x))
-#define pmd_present(x) (pmd_val(x) & _PAGE_PRESENT)
+/* pmd_present doesn't just test the _PAGE_PRESENT bit since wr.p.t.
+   can temporarily clear it. */
+#define pmd_present(x) (pmd_val(x))
 /* pmd_clear below */
 #define        pmd_bad(x)      ((pmd_val(x) & (~PAGE_MASK & ~_PAGE_USER & ~_PAGE_PRESENT)) != (_KERNPG_TABLE & ~_PAGE_PRESENT))