[PATCH] minimal alpha pt_regs fixes
[linux-2.6.git] / arch / alpha / kernel / irq.c
index 63af36c..dba4e70 100644 (file)
@@ -10,7 +10,6 @@
  * should be easier.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/errno.h>
@@ -95,12 +94,12 @@ show_interrupts(struct seq_file *p, void *v)
 #endif
                seq_printf(p, " %14s", irq_desc[irq].chip->typename);
                seq_printf(p, "  %c%s",
-                       (action->flags & SA_INTERRUPT)?'+':' ',
+                       (action->flags & IRQF_DISABLED)?'+':' ',
                        action->name);
 
                for (action=action->next; action; action = action->next) {
                        seq_printf(p, ", %c%s",
-                                 (action->flags & SA_INTERRUPT)?'+':' ',
+                                 (action->flags & IRQF_DISABLED)?'+':' ',
                                   action->name);
                }
 
@@ -130,6 +129,7 @@ unlock:
 void
 handle_irq(int irq, struct pt_regs * regs)
 {      
+       struct pt_regs *old_regs;
        /* 
         * We ack quickly, we don't want the irq controller
         * thinking we're snobs just because some other CPU has
@@ -150,6 +150,7 @@ handle_irq(int irq, struct pt_regs * regs)
                return;
        }
 
+       old_regs = set_irq_regs(regs);
        irq_enter();
        /*
         * __do_IRQ() must be called with IPL_MAX. Note that we do not
@@ -158,6 +159,7 @@ handle_irq(int irq, struct pt_regs * regs)
         * at IPL 0.
         */
        local_irq_disable();
-       __do_IRQ(irq, regs);
+       __do_IRQ(irq);
        irq_exit();
+       set_irq_regs(old_regs);
 }