aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh64/kernel/irq.c
diff options
context:
space:
mode:
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)
94 */ 94 */
95asmlinkage int do_IRQ(unsigned long vector_num, struct pt_regs * regs) 95asmlinkage int do_IRQ(unsigned long vector_num, struct pt_regs * regs)
96{ 96{
97 struct pt_regs *old_regs = set_irq_regs(regs);
97 int irq; 98 int irq;
98 99
99 irq_enter(); 100 irq_enter();
@@ -101,13 +102,14 @@ asmlinkage int do_IRQ(unsigned long vector_num, struct pt_regs * regs)
101 irq = irq_demux(vector_num); 102 irq = irq_demux(vector_num);
102 103
103 if (irq >= 0) { 104 if (irq >= 0) {
104 __do_IRQ(irq, regs); 105 __do_IRQ(irq);
105 } else { 106 } else {
106 printk("unexpected IRQ trap at vector %03lx\n", vector_num); 107 printk("unexpected IRQ trap at vector %03lx\n", vector_num);
107 } 108 }
108 109
109 irq_exit(); 110 irq_exit();
110 111
112 set_irq_regs(old_regs);
111 return 1; 113 return 1;
112} 114}
113 115