summaryrefslogtreecommitdiffstats
path: root/arch/sh64/kernel/irq.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2007-05-14 02:10:01 +0200
committerPaul Mundt <lethal@linux-sh.org>2007-05-14 02:10:01 +0200
commita226d33abccff1959cec911da4143ea06ab22052 (patch)
tree3dc9154f56eb328ae6257e09b02a183de46f4763 /arch/sh64/kernel/irq.c
parentsh64: Wire up many new syscalls. (diff)
downloadlinux-a226d33abccff1959cec911da4143ea06ab22052.tar.xz
linux-a226d33abccff1959cec911da4143ea06ab22052.zip
sh64: Fixups for the irq_regs changes.
A few interrupt handlers were never updated, fix them up. We were missing the irq_regs conversion also, so do that at the same time. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh64/kernel/irq.c')
-rw-r--r--arch/sh64/kernel/irq.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/sh64/kernel/irq.c b/arch/sh64/kernel/irq.c
index f68b4f6c9b31..9412b7166700 100644
--- a/arch/sh64/kernel/irq.c
+++ b/arch/sh64/kernel/irq.c
@@ -94,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();
@@ -101,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;
}