diff options
Diffstat (limited to 'arch/x86/mm/init_32.c')
| -rw-r--r-- | arch/x86/mm/init_32.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c index 949708d7a481..9ff3c0816d15 100644 --- a/arch/x86/mm/init_32.c +++ b/arch/x86/mm/init_32.c | |||
| @@ -564,7 +564,7 @@ static inline void save_pg_dir(void) | |||
| 564 | } | 564 | } |
| 565 | #endif /* !CONFIG_ACPI_SLEEP */ | 565 | #endif /* !CONFIG_ACPI_SLEEP */ |
| 566 | 566 | ||
| 567 | void zap_low_mappings(void) | 567 | void zap_low_mappings(bool early) |
| 568 | { | 568 | { |
| 569 | int i; | 569 | int i; |
| 570 | 570 | ||
| @@ -581,7 +581,11 @@ void zap_low_mappings(void) | |||
| 581 | set_pgd(swapper_pg_dir+i, __pgd(0)); | 581 | set_pgd(swapper_pg_dir+i, __pgd(0)); |
| 582 | #endif | 582 | #endif |
| 583 | } | 583 | } |
| 584 | flush_tlb_all(); | 584 | |
| 585 | if (early) | ||
| 586 | __flush_tlb(); | ||
| 587 | else | ||
| 588 | flush_tlb_all(); | ||
| 585 | } | 589 | } |
| 586 | 590 | ||
| 587 | pteval_t __supported_pte_mask __read_mostly = ~(_PAGE_NX | _PAGE_GLOBAL | _PAGE_IOMAP); | 591 | pteval_t __supported_pte_mask __read_mostly = ~(_PAGE_NX | _PAGE_GLOBAL | _PAGE_IOMAP); |
| @@ -956,7 +960,7 @@ void __init mem_init(void) | |||
| 956 | test_wp_bit(); | 960 | test_wp_bit(); |
| 957 | 961 | ||
| 958 | save_pg_dir(); | 962 | save_pg_dir(); |
| 959 | zap_low_mappings(); | 963 | zap_low_mappings(true); |
| 960 | } | 964 | } |
| 961 | 965 | ||
| 962 | #ifdef CONFIG_MEMORY_HOTPLUG | 966 | #ifdef CONFIG_MEMORY_HOTPLUG |
