diff options
Diffstat (limited to 'arch/powerpc/kernel/smp.c')
-rw-r--r-- | arch/powerpc/kernel/smp.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c index 9b86a74d2815..c2ee14498077 100644 --- a/arch/powerpc/kernel/smp.c +++ b/arch/powerpc/kernel/smp.c | |||
@@ -218,6 +218,9 @@ void crash_send_ipi(void (*crash_ipi_callback)(struct pt_regs *)) | |||
218 | 218 | ||
219 | static void stop_this_cpu(void *dummy) | 219 | static void stop_this_cpu(void *dummy) |
220 | { | 220 | { |
221 | /* Remove this CPU */ | ||
222 | set_cpu_online(smp_processor_id(), false); | ||
223 | |||
221 | local_irq_disable(); | 224 | local_irq_disable(); |
222 | while (1) | 225 | while (1) |
223 | ; | 226 | ; |
@@ -232,7 +235,7 @@ struct thread_info *current_set[NR_CPUS]; | |||
232 | 235 | ||
233 | static void __devinit smp_store_cpu_info(int id) | 236 | static void __devinit smp_store_cpu_info(int id) |
234 | { | 237 | { |
235 | per_cpu(pvr, id) = mfspr(SPRN_PVR); | 238 | per_cpu(cpu_pvr, id) = mfspr(SPRN_PVR); |
236 | } | 239 | } |
237 | 240 | ||
238 | static void __init smp_create_idle(unsigned int cpu) | 241 | static void __init smp_create_idle(unsigned int cpu) |
@@ -616,4 +619,16 @@ void __cpu_die(unsigned int cpu) | |||
616 | if (smp_ops->cpu_die) | 619 | if (smp_ops->cpu_die) |
617 | smp_ops->cpu_die(cpu); | 620 | smp_ops->cpu_die(cpu); |
618 | } | 621 | } |
622 | |||
623 | static DEFINE_MUTEX(powerpc_cpu_hotplug_driver_mutex); | ||
624 | |||
625 | void cpu_hotplug_driver_lock() | ||
626 | { | ||
627 | mutex_lock(&powerpc_cpu_hotplug_driver_mutex); | ||
628 | } | ||
629 | |||
630 | void cpu_hotplug_driver_unlock() | ||
631 | { | ||
632 | mutex_unlock(&powerpc_cpu_hotplug_driver_mutex); | ||
633 | } | ||
619 | #endif | 634 | #endif |