Thread (4 messages) 4 messages, 3 authors, 2012-07-16

[PATCH] [ARM] Unconditional call to smp_cross_call on UP crashes (take #2)

From: Will Deacon <hidden>
Date: 2012-07-16 11:22:49
Also in: lkml

On Fri, Jul 13, 2012 at 08:59:39AM +0100, Shawn Guo wrote:
quoted
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index 8f46446..7babc3f 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -590,7 +590,8 @@ void smp_send_stop(void)
 
 	cpumask_copy(&mask, cpu_online_mask);
 	cpumask_clear_cpu(smp_processor_id(), &mask);
-	smp_cross_call(&mask, IPI_CPU_STOP);
+	if (!cpumask_empty(&mask))
+		smp_cross_call(&mask, IPI_CPU_STOP);
I wonder whether we shouldn't have a default smp_cross_call implementation
with BUG_ON(!cpumask_empty(&mask)). It's marginally nicer than an explicit NULL
deference and it would also fix your problem.

Will
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help