diff --git a/arch/x86/mm/pageattr-test.c b/arch/x86/mm/pageattr-test.c index 0dce0e248a42..6cc106b388a5 100644 --- a/arch/x86/mm/pageattr-test.c +++ b/arch/x86/mm/pageattr-test.c @@ -20,10 +20,10 @@ enum { LOWEST_LEVEL = 4, LPS = (1 << PMD_SHIFT), #elif defined(CONFIG_X86_PAE) - LOWEST_LEVEL = 3, + LOWEST_LEVEL = 4, LPS = (1 << PMD_SHIFT), #else - LOWEST_LEVEL = 3, /* lookup_address lies here */ + LOWEST_LEVEL = 4, /* lookup_address lies here */ LPS = (1 << 22), #endif GPS = (1<<30) diff --git a/arch/x86/mm/pageattr_32.c b/arch/x86/mm/pageattr_32.c index dd49b16b3a0e..1c7bd81a4194 100644 --- a/arch/x86/mm/pageattr_32.c +++ b/arch/x86/mm/pageattr_32.c @@ -29,10 +29,10 @@ pte_t *lookup_address(unsigned long address, int *level) pmd = pmd_offset(pud, address); if (pmd_none(*pmd)) return NULL; - *level = 2; + *level = 3; if (pmd_large(*pmd)) return (pte_t *)pmd; - *level = 3; + *level = 4; return pte_offset_kernel(pmd, address); } @@ -136,7 +136,7 @@ static int __change_page_attr(struct page *page, pgprot_t prot) address < (unsigned long)&_etext && (pgprot_val(prot) & _PAGE_NX)); - if (level == 3) { + if (level == 4) { set_pte_atomic(kpte, mk_pte(page, canon_pgprot(prot))); } else { err = split_large_page(kpte, address);