[PATCH] sparc64 pt_regs fixes
[deliverable/linux.git] / arch / sparc64 / kernel / irq.c
index 4e64724cb9ae119f2c583bd716d07eee0c5f19ce..ce05deb1bc92157361a7dbda5d32b7408c00cd70 100644 (file)
@@ -547,9 +547,11 @@ void timer_irq(int irq, struct pt_regs *regs)
 void handler_irq(int irq, struct pt_regs *regs)
 {
        struct ino_bucket *bucket;
+       struct pt_regs *old_regs;
 
        clear_softint(1 << irq);
 
+       old_regs = set_irq_regs(regs);
        irq_enter();
 
        /* Sliiiick... */
@@ -558,12 +560,13 @@ void handler_irq(int irq, struct pt_regs *regs)
                struct ino_bucket *next = __bucket(bucket->irq_chain);
 
                bucket->irq_chain = 0;
-               __do_IRQ(bucket->virt_irq, regs);
+               __do_IRQ(bucket->virt_irq);
 
                bucket = next;
        }
 
        irq_exit();
+       set_irq_regs(old_regs);
 }
 
 struct sun5_timer {
This page took 0.038823 seconds and 5 git commands to generate.