[PATCH] ARM: smp: call platform's cpu_die in ipi_cpu_stop

Kevin Bracey kevin at bracey.fi
Sat Apr 6 08:37:04 EDT 2013


When hotplugging out, both cpu_kill and cpu_die have always been called.
But when smp_send_stop was used in machine_shutdown or panic, only
cpu_kill was called.

This causes problems for co-ordination between cpu_kill and cpu_die, as
attempted by shmobile. So add cpu_die call to ipi_cpu_stop, to ensure
that cpu_kill and cpu_die calls always occur together.

Signed-off-by: Kevin Bracey <kevin at bracey.fi>
---
 arch/arm/kernel/smp.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index 84f4cbf..6692bba 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -572,6 +572,9 @@ static void ipi_cpu_stop(unsigned int cpu)
 	local_fiq_disable();
 	local_irq_disable();
 
+	if (smp_ops.cpu_die)
+		smp_ops.cpu_die(cpu);
+
 	while (1)
 		cpu_relax();
 }
-- 
1.8.2.445.gfcda34b




More information about the linux-arm-kernel mailing list