|
@@ -1190,6 +1190,7 @@ static void __init smp_cpu_index_default(void)
|
|
|
*/
|
|
|
void __init native_smp_prepare_cpus(unsigned int max_cpus)
|
|
|
{
|
|
|
+ preempt_disable();
|
|
|
nmi_watchdog_default();
|
|
|
smp_cpu_index_default();
|
|
|
current_cpu_data = boot_cpu_data;
|
|
@@ -1206,7 +1207,7 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus)
|
|
|
if (smp_sanity_check(max_cpus) < 0) {
|
|
|
printk(KERN_INFO "SMP disabled\n");
|
|
|
disable_smp();
|
|
|
- return;
|
|
|
+ goto out;
|
|
|
}
|
|
|
|
|
|
preempt_disable();
|
|
@@ -1246,6 +1247,8 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus)
|
|
|
printk(KERN_INFO "CPU%d: ", 0);
|
|
|
print_cpu_info(&cpu_data(0));
|
|
|
setup_boot_clock();
|
|
|
+out:
|
|
|
+ preempt_enable();
|
|
|
}
|
|
|
/*
|
|
|
* Early setup to make printk work.
|