aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel/smp_64.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2009-04-08 21:06:35 -0700
committerDavid S. Miller <davem@davemloft.net>2009-04-14 17:08:56 -0700
commit8e255baa449df3049a8827a7f1f4f12b6921d0d1 (patch)
treee7a4dae27656b8ade67a6175cb05b7bad36a1acd /arch/sparc/kernel/smp_64.c
parentLinux 2.6.30-rc2 (diff)
downloadlinux-dev-8e255baa449df3049a8827a7f1f4f12b6921d0d1.tar.xz
linux-dev-8e255baa449df3049a8827a7f1f4f12b6921d0d1.zip
sparc64: Fix smp_callin() locking.
Interrupts must be disabled when taking the IPI lock. Caught by lockdep. Reported-by: Meelis Roos <mroos@linux.ee> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/kernel/smp_64.c')
-rw-r--r--arch/sparc/kernel/smp_64.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c
index 708e12a26b05..f7642e5a94db 100644
--- a/arch/sparc/kernel/smp_64.c
+++ b/arch/sparc/kernel/smp_64.c
@@ -118,9 +118,9 @@ void __cpuinit smp_callin(void)
while (!cpu_isset(cpuid, smp_commenced_mask))
rmb();
- ipi_call_lock();
+ ipi_call_lock_irq();
cpu_set(cpuid, cpu_online_map);
- ipi_call_unlock();
+ ipi_call_unlock_irq();
/* idle thread is expected to have preempt disabled */
preempt_disable();