diff options
-rw-r--r-- | arch/x86/mm/init_32.c | 6 | ||||
-rw-r--r-- | arch/x86/mm/init_64.c | 8 |
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) |