intel.c (054efb6467f84490bdf92afab6d9dbd5102e620a) intel.c (c109bf95992b391bb40bc37c5d309d13fead99b5)
1#include <linux/kernel.h>
2
3#include <linux/string.h>
4#include <linux/bitops.h>
5#include <linux/smp.h>
6#include <linux/sched.h>
7#include <linux/thread_info.h>
8#include <linux/module.h>

--- 138 unchanged lines hidden (view full) ---

147 }
148
149 /*
150 * Intel Quark Core DevMan_001.pdf section 6.4.11
151 * "The operating system also is required to invalidate (i.e., flush)
152 * the TLB when any changes are made to any of the page table entries.
153 * The operating system must reload CR3 to cause the TLB to be flushed"
154 *
1#include <linux/kernel.h>
2
3#include <linux/string.h>
4#include <linux/bitops.h>
5#include <linux/smp.h>
6#include <linux/sched.h>
7#include <linux/thread_info.h>
8#include <linux/module.h>

--- 138 unchanged lines hidden (view full) ---

147 }
148
149 /*
150 * Intel Quark Core DevMan_001.pdf section 6.4.11
151 * "The operating system also is required to invalidate (i.e., flush)
152 * the TLB when any changes are made to any of the page table entries.
153 * The operating system must reload CR3 to cause the TLB to be flushed"
154 *
155 * As a result cpu_has_pge() in arch/x86/include/asm/tlbflush.h should
156 * be false so that __flush_tlb_all() causes CR3 insted of CR4.PGE
157 * to be modified
155 * As a result, boot_cpu_has(X86_FEATURE_PGE) in arch/x86/include/asm/tlbflush.h
156 * should be false so that __flush_tlb_all() causes CR3 insted of CR4.PGE
157 * to be modified.
158 */
159 if (c->x86 == 5 && c->x86_model == 9) {
160 pr_info("Disabling PGE capability bit\n");
161 setup_clear_cpu_cap(X86_FEATURE_PGE);
162 }
163
164 if (c->cpuid_level >= 0x00000001) {
165 u32 eax, ebx, ecx, edx;

--- 621 unchanged lines hidden ---
158 */
159 if (c->x86 == 5 && c->x86_model == 9) {
160 pr_info("Disabling PGE capability bit\n");
161 setup_clear_cpu_cap(X86_FEATURE_PGE);
162 }
163
164 if (c->cpuid_level >= 0x00000001) {
165 u32 eax, ebx, ecx, edx;

--- 621 unchanged lines hidden ---