|
@@ -379,8 +379,11 @@ static cpumask_var_t frozen_cpus;
|
|
|
|
|
|
int disable_nonboot_cpus(void)
|
|
|
{
|
|
|
- int cpu, first_cpu, error = 0;
|
|
|
+ int cpu, first_cpu, error;
|
|
|
|
|
|
+ error = stop_machine_create();
|
|
|
+ if (error)
|
|
|
+ return error;
|
|
|
cpu_maps_update_begin();
|
|
|
first_cpu = cpumask_first(cpu_online_mask);
|
|
|
/* We take down all of the non-boot CPUs in one shot to avoid races
|
|
@@ -409,6 +412,7 @@ int disable_nonboot_cpus(void)
|
|
|
printk(KERN_ERR "Non-boot CPUs are not disabled\n");
|
|
|
}
|
|
|
cpu_maps_update_done();
|
|
|
+ stop_machine_destroy();
|
|
|
return error;
|
|
|
}
|
|
|
|