diff options
author | Ivan Kokshaysky <ink@jurassic.park.msu.ru> | 2005-07-01 16:46:26 +0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-07-01 08:20:23 -0700 |
commit | 4a89a04f1ee21a7c1f4413f1ad7dcfac50ff9b63 (patch) | |
tree | 18e85e7f3656b7a009096cd55788d2c150cddadd | |
parent | ef6689eff4b58273fed9e54293a3da983b321e9a (diff) | |
download | linux-3.10-4a89a04f1ee21a7c1f4413f1ad7dcfac50ff9b63.tar.gz linux-3.10-4a89a04f1ee21a7c1f4413f1ad7dcfac50ff9b63.tar.bz2 linux-3.10-4a89a04f1ee21a7c1f4413f1ad7dcfac50ff9b63.zip |
[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>
-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 e6ded33c6e2..9d34ce26e5e 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, #ifdef CONFIG_SMP { long cpu; + + local_irq_disable(); smp_percpu_timer_interrupt(regs); cpu = smp_processor_id(); if (cpu != boot_cpuid) { |