[PATCH] alpha: fix IRQ handling lockup
Ivan Kokshaysky [Fri, 10 Mar 2006 01:33:37 +0000 (17:33 -0800)]
Fix a lockup which was introduced during the conversion to the generic IRQ
framework.

Cc: Richard Henderson <rth@twiddle.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

arch/alpha/kernel/irq.c

index 9006063..da677f8 100644 (file)
@@ -151,8 +151,13 @@ handle_irq(int irq, struct pt_regs * regs)
        }
 
        irq_enter();
+       /*
+        * __do_IRQ() must be called with IPL_MAX. Note that we do not
+        * explicitly enable interrupts afterwards - some MILO PALcode
+        * (namely LX164 one) seems to have severe problems with RTI
+        * at IPL 0.
+        */
        local_irq_disable();
        __do_IRQ(irq, regs);
-       local_irq_enable();
        irq_exit();
 }