aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/mm/init_32.c6
-rw-r--r--arch/x86/mm/init_64.c8
2 files changed, 14 insertions, 0 deletions
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
index 0a3707fb973b..3f91bdc20971 100644
--- a/arch/x86/mm/init_32.c
+++ b/arch/x86/mm/init_32.c
@@ -1054,10 +1054,16 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
1054 mr[i].page_size_mask); 1054 mr[i].page_size_mask);
1055#endif 1055#endif
1056 1056
1057#ifdef CONFIG_X86_32
1057 early_ioremap_page_table_range_init(); 1058 early_ioremap_page_table_range_init();
1058 1059
1059 load_cr3(swapper_pg_dir); 1060 load_cr3(swapper_pg_dir);
1061#endif
1060 1062
1063#ifdef CONFIG_X86_64
1064 if (!after_bootmem)
1065 mmu_cr4_features = read_cr4();
1066#endif
1061 __flush_tlb_all(); 1067 __flush_tlb_all();
1062 1068
1063 if (!after_bootmem && table_end > table_start) 1069 if (!after_bootmem && table_end > table_start)
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index e4fadea2e521..5ecb23a57d2f 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -832,8 +832,16 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
832 mr[i].page_size_mask); 832 mr[i].page_size_mask);
833#endif 833#endif
834 834
835#ifdef CONFIG_X86_32
836 early_ioremap_page_table_range_init();
837
838 load_cr3(swapper_pg_dir);
839#endif
840
841#ifdef CONFIG_X86_64
835 if (!after_bootmem) 842 if (!after_bootmem)
836 mmu_cr4_features = read_cr4(); 843 mmu_cr4_features = read_cr4();
844#endif
837 __flush_tlb_all(); 845 __flush_tlb_all();
838 846
839 if (!after_bootmem && table_end > table_start) 847 if (!after_bootmem && table_end > table_start)