aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kernel/smpboot_32.c21
1 files changed, 6 insertions, 15 deletions
diff --git a/arch/x86/kernel/smpboot_32.c b/arch/x86/kernel/smpboot_32.c
index 5165b11d8aac..4ba5ab2d81fb 100644
--- a/arch/x86/kernel/smpboot_32.c
+++ b/arch/x86/kernel/smpboot_32.c
@@ -702,20 +702,6 @@ void cpu_exit_clear(void)
702} 702}
703#endif 703#endif
704 704
705static void __cpuinit __smp_prepare_cpu(int cpu)
706{
707 int apicid;
708
709 apicid = per_cpu(x86_cpu_to_apicid, cpu);
710
711 /* init low mem mapping */
712 clone_pgd_range(swapper_pg_dir, swapper_pg_dir + USER_PGD_PTRS,
713 min_t(unsigned long, KERNEL_PGD_PTRS, USER_PGD_PTRS));
714 flush_tlb_all();
715
716 do_boot_cpu(apicid, cpu);
717}
718
719static int boot_cpu_logical_apicid; 705static int boot_cpu_logical_apicid;
720/* Where the IO area was mapped on multiquad, always 0 otherwise */ 706/* Where the IO area was mapped on multiquad, always 0 otherwise */
721void *xquad_portio; 707void *xquad_portio;
@@ -872,7 +858,12 @@ int __cpuinit native_cpu_up(unsigned int cpu)
872 858
873 per_cpu(cpu_state, cpu) = CPU_UP_PREPARE; 859 per_cpu(cpu_state, cpu) = CPU_UP_PREPARE;
874 860
875 __smp_prepare_cpu(cpu); 861 /* init low mem mapping */
862 clone_pgd_range(swapper_pg_dir, swapper_pg_dir + USER_PGD_PTRS,
863 min_t(unsigned long, KERNEL_PGD_PTRS, USER_PGD_PTRS));
864 flush_tlb_all();
865
866 do_boot_cpu(apicid, cpu);
876 867
877 /* In case one didn't come up */ 868 /* In case one didn't come up */
878 if (!cpu_isset(cpu, cpu_callin_map)) { 869 if (!cpu_isset(cpu, cpu_callin_map)) {