From 64f0d70d5e53a2ee101cac03895ba6b35f652031 Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Fri, 27 Jul 2007 12:29:09 +0200 Subject: [PATCH] --- yaml --- r: 63093 b: refs/heads/master c: 8da1aecde00b74d63123e6031155bbb1424b338d h: refs/heads/master i: 63091: 7e2d92f24d282c913d6b02e104882cc2cb0621d8 v: v3 --- [refs] | 2 +- trunk/arch/s390/kernel/smp.c | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index 74ff5b2baac4..24b22250ef36 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3bb447fc8bb6523cb1cec7a0277d831a2b0462b7 +refs/heads/master: 8da1aecde00b74d63123e6031155bbb1424b338d diff --git a/trunk/arch/s390/kernel/smp.c b/trunk/arch/s390/kernel/smp.c index aff9f853fc30..03674fbe598f 100644 --- a/trunk/arch/s390/kernel/smp.c +++ b/trunk/arch/s390/kernel/smp.c @@ -120,7 +120,7 @@ static void __smp_call_function_map(void (*func) (void *info), void *info, if (wait) data.finished = CPU_MASK_NONE; - spin_lock_bh(&call_lock); + spin_lock(&call_lock); call_data = &data; for_each_cpu_mask(cpu, map) @@ -129,18 +129,16 @@ static void __smp_call_function_map(void (*func) (void *info), void *info, /* Wait for response */ while (!cpus_equal(map, data.started)) cpu_relax(); - if (wait) while (!cpus_equal(map, data.finished)) cpu_relax(); - - spin_unlock_bh(&call_lock); - + spin_unlock(&call_lock); out: - local_irq_disable(); - if (local) + if (local) { + local_irq_disable(); func(info); - local_irq_enable(); + local_irq_enable(); + } } /*