diff options
| author | David S. Miller <davem@davemloft.net> | 2009-04-09 00:06:35 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2009-04-14 20:08:56 -0400 |
| commit | 8e255baa449df3049a8827a7f1f4f12b6921d0d1 (patch) | |
| tree | e7a4dae27656b8ade67a6175cb05b7bad36a1acd | |
| parent | 0882e8dd3aad33eca41696d463bb896e6c8817eb (diff) | |
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>
| -rw-r--r-- | arch/sparc/kernel/smp_64.c | 4 |
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) | |||
| 118 | while (!cpu_isset(cpuid, smp_commenced_mask)) | 118 | while (!cpu_isset(cpuid, smp_commenced_mask)) |
| 119 | rmb(); | 119 | rmb(); |
| 120 | 120 | ||
| 121 | ipi_call_lock(); | 121 | ipi_call_lock_irq(); |
| 122 | cpu_set(cpuid, cpu_online_map); | 122 | cpu_set(cpuid, cpu_online_map); |
| 123 | ipi_call_unlock(); | 123 | ipi_call_unlock_irq(); |
| 124 | 124 | ||
| 125 | /* idle thread is expected to have preempt disabled */ | 125 | /* idle thread is expected to have preempt disabled */ |
| 126 | preempt_disable(); | 126 | preempt_disable(); |
