summary refs log tree commit diff
path: root/arch/alpha
diff options
context:
space:
mode:
authorIvan Kokshaysky <ink@jurassic.park.msu.ru>2005-07-01 16:46:26 +0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-07-01 08:20:23 -0700
commit4a89a04f1ee21a7c1f4413f1ad7dcfac50ff9b63 (patch)
tree18e85e7f3656b7a009096cd55788d2c150cddadd /arch/alpha
parentef6689eff4b58273fed9e54293a3da983b321e9a (diff)
downloadlinux-4a89a04f1ee21a7c1f4413f1ad7dcfac50ff9b63.tar.gz
[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')
-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,
 #ifdef CONFIG_SMP
 	  {
 		long cpu;
+
+		local_irq_disable();
 		smp_percpu_timer_interrupt(regs);
 		cpu = smp_processor_id();
 		if (cpu != boot_cpuid) {