lkml.org 
[lkml]   [2007]   [Feb]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[S390] Add/extend WARN_ONs in smp_call_function & smp_call_function_on.
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();

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2007-02-06 22:13    [W:0.026 / U:2.008 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site