diff options
Diffstat (limited to 'arch/x86/kernel/smpboot.c')
-rw-r--r-- | arch/x86/kernel/smpboot.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index 2f0e0f1090f6..869b98840fd0 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c | |||
@@ -790,15 +790,17 @@ static int __cpuinit do_boot_cpu(int apicid, int cpu) | |||
790 | 790 | ||
791 | set_idle_for_cpu(cpu, c_idle.idle); | 791 | set_idle_for_cpu(cpu, c_idle.idle); |
792 | do_rest: | 792 | do_rest: |
793 | #ifdef CONFIG_X86_32 | ||
794 | per_cpu(current_task, cpu) = c_idle.idle; | 793 | per_cpu(current_task, cpu) = c_idle.idle; |
794 | #ifdef CONFIG_X86_32 | ||
795 | init_gdt(cpu); | 795 | init_gdt(cpu); |
796 | /* Stack for startup_32 can be just as for start_secondary onwards */ | 796 | /* Stack for startup_32 can be just as for start_secondary onwards */ |
797 | irq_ctx_init(cpu); | 797 | irq_ctx_init(cpu); |
798 | #else | 798 | #else |
799 | cpu_pda(cpu)->pcurrent = c_idle.idle; | ||
800 | clear_tsk_thread_flag(c_idle.idle, TIF_FORK); | 799 | clear_tsk_thread_flag(c_idle.idle, TIF_FORK); |
801 | initial_gs = per_cpu_offset(cpu); | 800 | initial_gs = per_cpu_offset(cpu); |
801 | per_cpu(kernel_stack, cpu) = | ||
802 | (unsigned long)task_stack_page(c_idle.idle) - | ||
803 | KERNEL_STACK_OFFSET + THREAD_SIZE; | ||
802 | #endif | 804 | #endif |
803 | early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu); | 805 | early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu); |
804 | initial_code = (unsigned long)start_secondary; | 806 | initial_code = (unsigned long)start_secondary; |