All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] prevent sparc64 from invoking irq handlers on offline CPUs
@ 2008-08-31 17:33 ` Paul E. McKenney
  0 siblings, 0 replies; 18+ messages in thread
From: Paul E. McKenney @ 2008-08-31 17:33 UTC (permalink / raw)
  To: linux-kernel; +Cc: davem, wli, sparclinux, manfred, akpm

Make sparc64 refrain from clearing a given to-be-offlined CPU's bit in the
cpu_online_mask until it has processed pending irqs.  This change
prevents other CPUs from being blindsided by an apparently offline CPU
nevertheless changing globally visible state.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
---

 smp.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c
index 743ccad..b83a683 100644
--- a/arch/sparc64/kernel/smp.c
+++ b/arch/sparc64/kernel/smp.c
@@ -1305,10 +1305,6 @@ int __cpu_disable(void)
 	c->core_id = 0;
 	c->proc_id = -1;
 
-	spin_lock(&call_lock);
-	cpu_clear(cpu, cpu_online_map);
-	spin_unlock(&call_lock);
-
 	smp_wmb();
 
 	/* Make sure no interrupts point to this cpu.  */
@@ -1318,6 +1314,10 @@ int __cpu_disable(void)
 	mdelay(1);
 	local_irq_disable();
 
+	spin_lock(&call_lock);
+	cpu_clear(cpu, cpu_online_map);
+	spin_unlock(&call_lock);
+
 	return 0;
 }
 

^ permalink raw reply related	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2008-09-09 19:57 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-31 17:33 [PATCH] prevent sparc64 from invoking irq handlers on offline CPUs Paul E. McKenney
2008-08-31 17:33 ` Paul E. McKenney
2008-09-03  0:16 ` [PATCH] prevent sparc64 from invoking irq handlers on offline David Miller
2008-09-03  0:16   ` [PATCH] prevent sparc64 from invoking irq handlers on offline CPUs David Miller
2008-09-03  0:42   ` [PATCH] prevent sparc64 from invoking irq handlers on offline Paul E. McKenney
2008-09-03  0:42     ` [PATCH] prevent sparc64 from invoking irq handlers on offline CPUs Paul E. McKenney
2008-09-03  9:21     ` [PATCH] prevent sparc64 from invoking irq handlers on offline David Miller
2008-09-03  9:21       ` [PATCH] prevent sparc64 from invoking irq handlers on offline CPUs David Miller
2008-09-03 15:42       ` [PATCH] prevent sparc64 from invoking irq handlers on offline Paul E. McKenney
2008-09-03 15:42         ` [PATCH] prevent sparc64 from invoking irq handlers on offline CPUs Paul E. McKenney
2008-09-09  0:17         ` [PATCH] prevent sparc64 from invoking irq handlers on offline David Miller
2008-09-09  0:17           ` [PATCH] prevent sparc64 from invoking irq handlers on offline CPUs David Miller
2008-09-09 14:54           ` [PATCH] prevent sparc64 from invoking irq handlers on offline Paul E. McKenney
2008-09-09 14:54             ` [PATCH] prevent sparc64 from invoking irq handlers on offline CPUs Paul E. McKenney
2008-09-09 18:49           ` [PATCH] prevent sparc64 from invoking irq handlers on offline Manfred Spraul
2008-09-09 18:49             ` [PATCH] prevent sparc64 from invoking irq handlers on offline CPUs Manfred Spraul
2008-09-09 19:57             ` [PATCH] prevent sparc64 from invoking irq handlers on offline David Miller
2008-09-09 19:57               ` [PATCH] prevent sparc64 from invoking irq handlers on offline CPUs David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.