diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/cpu.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/kernel/cpu.c b/kernel/cpu.c index 8ce10043e4ac..f5f9485b8c0f 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c | |||
@@ -413,6 +413,14 @@ int disable_nonboot_cpus(void) | |||
413 | return error; | 413 | return error; |
414 | } | 414 | } |
415 | 415 | ||
416 | void __weak arch_enable_nonboot_cpus_begin(void) | ||
417 | { | ||
418 | } | ||
419 | |||
420 | void __weak arch_enable_nonboot_cpus_end(void) | ||
421 | { | ||
422 | } | ||
423 | |||
416 | void __ref enable_nonboot_cpus(void) | 424 | void __ref enable_nonboot_cpus(void) |
417 | { | 425 | { |
418 | int cpu, error; | 426 | int cpu, error; |
@@ -424,6 +432,9 @@ void __ref enable_nonboot_cpus(void) | |||
424 | goto out; | 432 | goto out; |
425 | 433 | ||
426 | printk("Enabling non-boot CPUs ...\n"); | 434 | printk("Enabling non-boot CPUs ...\n"); |
435 | |||
436 | arch_enable_nonboot_cpus_begin(); | ||
437 | |||
427 | for_each_cpu(cpu, frozen_cpus) { | 438 | for_each_cpu(cpu, frozen_cpus) { |
428 | error = _cpu_up(cpu, 1); | 439 | error = _cpu_up(cpu, 1); |
429 | if (!error) { | 440 | if (!error) { |
@@ -432,6 +443,9 @@ void __ref enable_nonboot_cpus(void) | |||
432 | } | 443 | } |
433 | printk(KERN_WARNING "Error taking CPU%d up: %d\n", cpu, error); | 444 | printk(KERN_WARNING "Error taking CPU%d up: %d\n", cpu, error); |
434 | } | 445 | } |
446 | |||
447 | arch_enable_nonboot_cpus_end(); | ||
448 | |||
435 | cpumask_clear(frozen_cpus); | 449 | cpumask_clear(frozen_cpus); |
436 | out: | 450 | out: |
437 | cpu_maps_update_done(); | 451 | cpu_maps_update_done(); |