diff options
-rw-r--r-- | arch/x86/kernel/smpboot_32.c | 21 |
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 | ||
705 | static 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 | |||
719 | static int boot_cpu_logical_apicid; | 705 | static 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 */ |
721 | void *xquad_portio; | 707 | void *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)) { |