aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/smpboot.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-07-08 04:32:56 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-08 04:32:56 -0400
commit896395c290f902576270d84291c1f7f8bfbe339d (patch)
tree650114bff3a5f808ee1d713ecc443b0eaab2e1c3 /arch/x86/kernel/smpboot.c
parentaf1cf204ba2fd8135933a2e4df523fb1112dc0e2 (diff)
parent1b40a895df6c7d5a80e71f65674060b03d84bbef (diff)
Merge branch 'linus' into tmp.x86.mpparse.new
Diffstat (limited to 'arch/x86/kernel/smpboot.c')
-rw-r--r--arch/x86/kernel/smpboot.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index 843722e2b79e..83e62137911b 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -979,7 +979,6 @@ do_rest:
979#endif 979#endif
980 cpu_clear(cpu, cpu_callout_map); /* was set by do_boot_cpu() */ 980 cpu_clear(cpu, cpu_callout_map); /* was set by do_boot_cpu() */
981 cpu_clear(cpu, cpu_initialized); /* was set by cpu_init() */ 981 cpu_clear(cpu, cpu_initialized); /* was set by cpu_init() */
982 cpu_clear(cpu, cpu_possible_map);
983 cpu_clear(cpu, cpu_present_map); 982 cpu_clear(cpu, cpu_present_map);
984 per_cpu(x86_cpu_to_apicid, cpu) = BAD_APICID; 983 per_cpu(x86_cpu_to_apicid, cpu) = BAD_APICID;
985 } 984 }
@@ -1173,6 +1172,7 @@ static void __init smp_cpu_index_default(void)
1173 */ 1172 */
1174void __init native_smp_prepare_cpus(unsigned int max_cpus) 1173void __init native_smp_prepare_cpus(unsigned int max_cpus)
1175{ 1174{
1175 preempt_disable();
1176 nmi_watchdog_default(); 1176 nmi_watchdog_default();
1177 smp_cpu_index_default(); 1177 smp_cpu_index_default();
1178 current_cpu_data = boot_cpu_data; 1178 current_cpu_data = boot_cpu_data;
@@ -1189,7 +1189,7 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus)
1189 if (smp_sanity_check(max_cpus) < 0) { 1189 if (smp_sanity_check(max_cpus) < 0) {
1190 printk(KERN_INFO "SMP disabled\n"); 1190 printk(KERN_INFO "SMP disabled\n");
1191 disable_smp(); 1191 disable_smp();
1192 return; 1192 goto out;
1193 } 1193 }
1194 1194
1195 preempt_disable(); 1195 preempt_disable();
@@ -1229,6 +1229,8 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus)
1229 printk(KERN_INFO "CPU%d: ", 0); 1229 printk(KERN_INFO "CPU%d: ", 0);
1230 print_cpu_info(&cpu_data(0)); 1230 print_cpu_info(&cpu_data(0));
1231 setup_boot_clock(); 1231 setup_boot_clock();
1232out:
1233 preempt_enable();
1232} 1234}
1233/* 1235/*
1234 * Early setup to make printk work. 1236 * Early setup to make printk work.