Loading arch/x86/mm/pageattr.c +4 −0 Original line number Diff line number Diff line Loading @@ -216,8 +216,12 @@ __change_page_attr(unsigned long address, unsigned long pfn, pgprot_t prot) prot = static_protections(prot, address); if (level == PG_LEVEL_4K) { WARN_ON_ONCE(pgprot_val(prot) & _PAGE_PSE); set_pte_atomic(kpte, pfn_pte(pfn, canon_pgprot(prot))); } else { /* Clear the PSE bit for the 4k level pages ! */ pgprot_val(prot) = pgprot_val(prot) & ~_PAGE_PSE; err = split_large_page(kpte, address); if (!err) goto repeat; Loading Loading
arch/x86/mm/pageattr.c +4 −0 Original line number Diff line number Diff line Loading @@ -216,8 +216,12 @@ __change_page_attr(unsigned long address, unsigned long pfn, pgprot_t prot) prot = static_protections(prot, address); if (level == PG_LEVEL_4K) { WARN_ON_ONCE(pgprot_val(prot) & _PAGE_PSE); set_pte_atomic(kpte, pfn_pte(pfn, canon_pgprot(prot))); } else { /* Clear the PSE bit for the 4k level pages ! */ pgprot_val(prot) = pgprot_val(prot) & ~_PAGE_PSE; err = split_large_page(kpte, address); if (!err) goto repeat; Loading