aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2008-01-30 07:34:07 -0500
committerIngo Molnar <mingo@elte.hu>2008-01-30 07:34:07 -0500
commita72a08a4b61cb8868606a69b744848552e92062b (patch)
treea82c77096eece34c0536de656959aa879cb02687 /arch
parent3c1df68b848b39270752ff8d4b956cc4a4dce0f6 (diff)
x86: cpa: fix split thinko
Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch')
-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:
216 prot = static_protections(prot, address); 216 prot = static_protections(prot, address);
217 217
218 if (level == PG_LEVEL_4K) { 218 if (level == PG_LEVEL_4K) {
219 WARN_ON_ONCE(pgprot_val(prot) & _PAGE_PSE);
219 set_pte_atomic(kpte, pfn_pte(pfn, canon_pgprot(prot))); 220 set_pte_atomic(kpte, pfn_pte(pfn, canon_pgprot(prot)));
220 } else { 221 } else {
222 /* Clear the PSE bit for the 4k level pages ! */
223 pgprot_val(prot) = pgprot_val(prot) & ~_PAGE_PSE;
224
221 err = split_large_page(kpte, address); 225 err = split_large_page(kpte, address);
222 if (!err) 226 if (!err)
223 goto repeat; 227 goto repeat;