aboutsummaryrefslogtreecommitdiffstats
path: root/arch/alpha/kernel/irq_alpha.c
diff options
context:
space:
mode:
authorIvan Kokshaysky <ink@jurassic.park.msu.ru>2005-07-01 08:46:26 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-07-01 11:20:23 -0400
commit4a89a04f1ee21a7c1f4413f1ad7dcfac50ff9b63 (patch)
tree18e85e7f3656b7a009096cd55788d2c150cddadd /arch/alpha/kernel/irq_alpha.c
parentef6689eff4b58273fed9e54293a3da983b321e9a (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.c2
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) {