X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=arch%2Fsh64%2Fkernel%2Firq.c;h=9412b7166700307343c4fbca7e3d895a37a6c7d6;hb=43cd73658d8077ee6899b0b5029aad0cba1e9f92;hp=e7e07f8749c9907567ff8a83053b45f2577eea61;hpb=ca78f6baca863afe2e6a244a0fe94b3a70211d46;p=linux-2.6-omap-h63xx.git diff --git a/arch/sh64/kernel/irq.c b/arch/sh64/kernel/irq.c index e7e07f8749c..9412b716670 100644 --- a/arch/sh64/kernel/irq.c +++ b/arch/sh64/kernel/irq.c @@ -26,7 +26,6 @@ #include #include #include -#include #include #include #include @@ -95,6 +94,7 @@ asmlinkage void do_NMI(unsigned long vector_num, struct pt_regs * regs) */ asmlinkage int do_IRQ(unsigned long vector_num, struct pt_regs * regs) { + struct pt_regs *old_regs = set_irq_regs(regs); int irq; irq_enter(); @@ -102,13 +102,14 @@ asmlinkage int do_IRQ(unsigned long vector_num, struct pt_regs * regs) irq = irq_demux(vector_num); if (irq >= 0) { - __do_IRQ(irq, regs); + __do_IRQ(irq); } else { printk("unexpected IRQ trap at vector %03lx\n", vector_num); } irq_exit(); + set_irq_regs(old_regs); return 1; }