diff options
author | Ivan Kokshaysky <ink@jurassic.park.msu.ru> | 2005-07-01 08:46:26 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-07-01 11:20:23 -0400 |
commit | 4a89a04f1ee21a7c1f4413f1ad7dcfac50ff9b63 (patch) | |
tree | 18e85e7f3656b7a009096cd55788d2c150cddadd /arch/alpha/kernel/irq_alpha.c | |
parent | ef6689eff4b58273fed9e54293a3da983b321e9a (diff) |
[PATCH] alpha smp fix (part #2)
This fixes the bug that caused BUG_ON(!irqs_disabled()) to trigger in
run_posix_cpu_timers() on alpha/smp. We didn't disable interrupts
properly before calling smp_percpu_timer_interrupt().
We *do* disable interrupts everywhere except this unfortunate
smp_percpu_timer_interrupt(). Fixed thus.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/alpha/kernel/irq_alpha.c')
-rw-r--r-- | arch/alpha/kernel/irq_alpha.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/alpha/kernel/irq_alpha.c b/arch/alpha/kernel/irq_alpha.c index e6ded33c6e22..9d34ce26e5ef 100644 --- a/arch/alpha/kernel/irq_alpha.c +++ b/arch/alpha/kernel/irq_alpha.c | |||
@@ -55,6 +55,8 @@ do_entInt(unsigned long type, unsigned long vector, | |||
55 | #ifdef CONFIG_SMP | 55 | #ifdef CONFIG_SMP |
56 | { | 56 | { |
57 | long cpu; | 57 | long cpu; |
58 | |||
59 | local_irq_disable(); | ||
58 | smp_percpu_timer_interrupt(regs); | 60 | smp_percpu_timer_interrupt(regs); |
59 | cpu = smp_processor_id(); | 61 | cpu = smp_processor_id(); |
60 | if (cpu != boot_cpuid) { | 62 | if (cpu != boot_cpuid) { |