[PATCH] alpha smp fix (part #2)
authorIvan Kokshaysky <ink@jurassic.park.msu.ru>
Fri, 1 Jul 2005 12:46:26 +0000 (16:46 +0400)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Fri, 1 Jul 2005 15:20:23 +0000 (08:20 -0700)
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>
arch/alpha/kernel/irq_alpha.c

index e6ded33c6e22c2904963c72f44d920393e252583..9d34ce26e5efc9231eb3581de7b158438818944d 100644 (file)
@@ -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) {