Messages in this thread Patch in this message | | | Subject | [PATCH]x86: make spurious_fault check correct pte bit | From | Shaohua Li <> | Date | Tue, 27 Jul 2010 16:06:28 +0800 |
| |
pte_present() returns true even present bit isn't set but _PAGE_PROTNONE (global bit) bit is set. While with CONFIG_DEBUG_PAGEALLOC, free pages have global bit set but present bit clear. This patch makes we could catch free pages access with CONFIG_DEBUG_PAGEALLOC enabled.
Signed-off-by: Shaohua Li <shaohua.li@intel.com>
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c index f627779..93afd78 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@ -893,7 +893,7 @@ spurious_fault(unsigned long error_code, unsigned long address) return spurious_fault_check(error_code, (pte_t *) pmd); pte = pte_offset_kernel(pmd, address); - if (!pte_present(*pte)) + if (!(pte_flags(*pte) & _PAGE_PRESENT)) return 0; ret = spurious_fault_check(error_code, pte);
| |