diff options
Diffstat (limited to 'arch/x86/kernel/setup.c')
-rw-r--r-- | arch/x86/kernel/setup.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 41ead8d3bc0b..235cfd39e0d7 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c | |||
@@ -879,6 +879,15 @@ void __init setup_arch(char **cmdline_p) | |||
879 | KERNEL_PGD_PTRS); | 879 | KERNEL_PGD_PTRS); |
880 | 880 | ||
881 | load_cr3(swapper_pg_dir); | 881 | load_cr3(swapper_pg_dir); |
882 | /* | ||
883 | * Note: Quark X1000 CPUs advertise PGE incorrectly and require | ||
884 | * a cr3 based tlb flush, so the following __flush_tlb_all() | ||
885 | * will not flush anything because the cpu quirk which clears | ||
886 | * X86_FEATURE_PGE has not been invoked yet. Though due to the | ||
887 | * load_cr3() above the TLB has been flushed already. The | ||
888 | * quirk is invoked before subsequent calls to __flush_tlb_all() | ||
889 | * so proper operation is guaranteed. | ||
890 | */ | ||
882 | __flush_tlb_all(); | 891 | __flush_tlb_all(); |
883 | #else | 892 | #else |
884 | printk(KERN_INFO "Command line: %s\n", boot_command_line); | 893 | printk(KERN_INFO "Command line: %s\n", boot_command_line); |