diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index 41ead8d..90e0b85 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -880,6 +880,13 @@ void __init setup_arch(char **cmdline_p)
load_cr3(swapper_pg_dir);
__flush_tlb_all();
+ /*
+ * Quark X1000 wrongly advertises PGE, add __flush_tlb()
+ * below to make sure TLB is flushed correctly in the early stage
+ * of setup_arch() for Quark X1000.
+ * X86_FEATURE_PGE flag is only setup later stage at early_cpu_init();
+ */
+ __flush_tlb();
#else
printk(KERN_INFO "Command line: %s\n", boot_command_line);
#endif