|
@@ -144,6 +144,21 @@ static void early_init_intel(struct cpuinfo_x86 *c)
|
|
|
setup_clear_cpu_cap(X86_FEATURE_ERMS);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Intel Quark Core DevMan_001.pdf section 6.4.11
|
|
|
+ * "The operating system also is required to invalidate (i.e., flush)
|
|
|
+ * the TLB when any changes are made to any of the page table entries.
|
|
|
+ * The operating system must reload CR3 to cause the TLB to be flushed"
|
|
|
+ *
|
|
|
+ * As a result cpu_has_pge() in arch/x86/include/asm/tlbflush.h should
|
|
|
+ * be false so that __flush_tlb_all() causes CR3 insted of CR4.PGE
|
|
|
+ * to be modified
|
|
|
+ */
|
|
|
+ if (c->x86 == 5 && c->x86_model == 9) {
|
|
|
+ pr_info("Disabling PGE capability bit\n");
|
|
|
+ setup_clear_cpu_cap(X86_FEATURE_PGE);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_X86_32
|