|
@@ -287,24 +287,15 @@ void __init setup_per_cpu_areas(void)
|
|
|
/* Setup cpu initialized, callin, callout masks */
|
|
|
setup_cpu_local_masks();
|
|
|
|
|
|
-#ifdef CONFIG_X86_32
|
|
|
/*
|
|
|
* Sync back kernel address range again. We already did this in
|
|
|
* setup_arch(), but percpu data also needs to be available in
|
|
|
* the smpboot asm. We can't reliably pick up percpu mappings
|
|
|
* using vmalloc_fault(), because exception dispatch needs
|
|
|
* percpu data.
|
|
|
+ *
|
|
|
+ * FIXME: Can the later sync in setup_cpu_entry_areas() replace
|
|
|
+ * this call?
|
|
|
*/
|
|
|
- clone_pgd_range(initial_page_table + KERNEL_PGD_BOUNDARY,
|
|
|
- swapper_pg_dir + KERNEL_PGD_BOUNDARY,
|
|
|
- KERNEL_PGD_PTRS);
|
|
|
-
|
|
|
- /*
|
|
|
- * sync back low identity map too. It is used for example
|
|
|
- * in the 32-bit EFI stub.
|
|
|
- */
|
|
|
- clone_pgd_range(initial_page_table,
|
|
|
- swapper_pg_dir + KERNEL_PGD_BOUNDARY,
|
|
|
- min(KERNEL_PGD_PTRS, KERNEL_PGD_BOUNDARY));
|
|
|
-#endif
|
|
|
+ sync_initial_page_table();
|
|
|
}
|