mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [S390] Add/extend WARN_ONs in smp_call_function & smp_call_function_on.
@ 2007-02-06 21:10 Martin Schwidefsky
  0 siblings, 0 replies; only message in thread
From: Martin Schwidefsky @ 2007-02-06 21:10 UTC (permalink / raw)
  To: linux-kernel, linux-s390; +Cc: heiko.carstens

From: Heiko Carstens <heiko.carstens@de.ibm.com>

[S390] Add/extend WARN_ONs in smp_call_function & smp_call_function_on.

Let smp_call_function & smp_call_function_on complain if called with
interrupts disabled or called from a wrong context.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
---

 arch/s390/kernel/smp.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff -urpN linux-2.6/arch/s390/kernel/smp.c linux-2.6-patched/arch/s390/kernel/smp.c
--- linux-2.6/arch/s390/kernel/smp.c	2007-02-06 21:43:03.000000000 +0100
+++ linux-2.6-patched/arch/s390/kernel/smp.c	2007-02-06 21:43:35.000000000 +0100
@@ -57,7 +57,7 @@ static void smp_ext_bitcall(int, ec_bit_
 static void smp_ext_bitcall_others(ec_bit_sig);
 
 /*
-5B * Structure and data for smp_call_function(). This is designed to minimise
+ * Structure and data for smp_call_function(). This is designed to minimise
  * static memory requirements. It also looks cleaner.
  */
 static DEFINE_SPINLOCK(call_lock);
@@ -113,8 +113,8 @@ int smp_call_function (void (*func) (voi
 	if (cpus <= 0)
 		return 0;
 
-	/* Can deadlock when called with interrupts disabled */
-	WARN_ON(irqs_disabled());
+	/* Can deadlock when interrupts are disabled or if in wrong context */
+	WARN_ON(irqs_disabled() || in_interrupt());
 
 	data.func = func;
 	data.info = info;
@@ -159,6 +159,9 @@ int smp_call_function_on(void (*func) (v
 	if (!cpu_online(cpu))
 		return -EINVAL;
 
+	/* Can deadlock when interrupts are disabled or if in wrong context */
+	WARN_ON(irqs_disabled() || in_irq());
+
 	/* disable preemption for local function call */
 	curr_cpu = get_cpu();
 

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2007-02-06 21:10 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-06 21:10 [S390] Add/extend WARN_ONs in smp_call_function & smp_call_function_on Martin Schwidefsky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®