diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/cpu.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/cpu.c b/kernel/cpu.c index 30e74dd6d01b..79e40f00dcb8 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c | |||
@@ -379,8 +379,11 @@ static cpumask_var_t frozen_cpus; | |||
379 | 379 | ||
380 | int disable_nonboot_cpus(void) | 380 | int disable_nonboot_cpus(void) |
381 | { | 381 | { |
382 | int cpu, first_cpu, error = 0; | 382 | int cpu, first_cpu, error; |
383 | 383 | ||
384 | error = stop_machine_create(); | ||
385 | if (error) | ||
386 | return error; | ||
384 | cpu_maps_update_begin(); | 387 | cpu_maps_update_begin(); |
385 | first_cpu = cpumask_first(cpu_online_mask); | 388 | first_cpu = cpumask_first(cpu_online_mask); |
386 | /* We take down all of the non-boot CPUs in one shot to avoid races | 389 | /* We take down all of the non-boot CPUs in one shot to avoid races |
@@ -409,6 +412,7 @@ int disable_nonboot_cpus(void) | |||
409 | printk(KERN_ERR "Non-boot CPUs are not disabled\n"); | 412 | printk(KERN_ERR "Non-boot CPUs are not disabled\n"); |
410 | } | 413 | } |
411 | cpu_maps_update_done(); | 414 | cpu_maps_update_done(); |
415 | stop_machine_destroy(); | ||
412 | return error; | 416 | return error; |
413 | } | 417 | } |
414 | 418 | ||