sparc64: Fix smp_callin() locking.
authorDavid S. Miller <davem@davemloft.net>
Thu, 9 Apr 2009 04:06:35 +0000 (21:06 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 15 Apr 2009 00:08:56 +0000 (17:08 -0700)
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>
arch/sparc/kernel/smp_64.c

index 708e12a26b0528919065429d66c1bdf32ab4a5aa..f7642e5a94dbdcd4b45d48b7391b2f01a5b14c64 100644 (file)
@@ -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();