[PATCH 6 of 8] x86: clarify use of _PAGE_CHG_MASK

Jeremy Fitzhardinge
2008-05-09T11:11:45Z

_PAGE_CHG_MASK is defined as the set of bits not updated by
pte_modify(); specifically, the pfn itself, and the Accessed and Dirty
bits (which are updated by hardware).

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
---
include/asm-x86/pgtable.h | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/include/asm-x86/pgtable.h b/include/asm-x86/pgtable.h
--- a/include/asm-x86/pgtable.h
+++ b/include/asm-x86/pgtable.h
@@ -58,6 +58,7 @@
#define _KERNPG_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_ACCESSED | \
_PAGE_DIRTY)

+/* Set of bits not changed in pte_modify */
#define _PAGE_CHG_MASK (PTE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY)

#define _PAGE_CACHE_MASK (_PAGE_PCD | _PAGE_PWT)
@@ -285,11 +286,8 @@
{
pteval_t val = pte_val(pte);

- /*
- * Chop off the NX bit (if present), and add the NX portion of
- * the newprot (if present):
- */
- val &= _PAGE_CHG_MASK & ~_PAGE_NX;
+ /* Extract unchanged bits from pte */
+ val &= _PAGE_CHG_MASK;
val |= pgprot_val(newprot) & __supported_pte_mask;

return __pte(val);