summaryrefslogtreecommitdiff
path: root/arch/x86/mm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/mm')
-rw-r--r--arch/x86/mm/pageattr.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
index 23f0aa3d01c1..a2ee317548f2 100644
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -216,8 +216,12 @@ repeat:
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;