|
@@ -564,7 +564,7 @@ static inline void save_pg_dir(void)
|
|
}
|
|
}
|
|
#endif /* !CONFIG_ACPI_SLEEP */
|
|
#endif /* !CONFIG_ACPI_SLEEP */
|
|
|
|
|
|
-void zap_low_mappings(void)
|
|
|
|
|
|
+void zap_low_mappings(bool early)
|
|
{
|
|
{
|
|
int i;
|
|
int i;
|
|
|
|
|
|
@@ -581,7 +581,11 @@ void zap_low_mappings(void)
|
|
set_pgd(swapper_pg_dir+i, __pgd(0));
|
|
set_pgd(swapper_pg_dir+i, __pgd(0));
|
|
#endif
|
|
#endif
|
|
}
|
|
}
|
|
- flush_tlb_all();
|
|
|
|
|
|
+
|
|
|
|
+ if (early)
|
|
|
|
+ __flush_tlb();
|
|
|
|
+ else
|
|
|
|
+ flush_tlb_all();
|
|
}
|
|
}
|
|
|
|
|
|
pteval_t __supported_pte_mask __read_mostly = ~(_PAGE_NX | _PAGE_GLOBAL | _PAGE_IOMAP);
|
|
pteval_t __supported_pte_mask __read_mostly = ~(_PAGE_NX | _PAGE_GLOBAL | _PAGE_IOMAP);
|
|
@@ -956,7 +960,7 @@ void __init mem_init(void)
|
|
test_wp_bit();
|
|
test_wp_bit();
|
|
|
|
|
|
save_pg_dir();
|
|
save_pg_dir();
|
|
- zap_low_mappings();
|
|
|
|
|
|
+ zap_low_mappings(true);
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_MEMORY_HOTPLUG
|
|
#ifdef CONFIG_MEMORY_HOTPLUG
|