diff options
Diffstat (limited to 'arch/sh64/kernel/irq.c')
-rw-r--r-- | arch/sh64/kernel/irq.c | 4 |
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 | */ |
95 | asmlinkage int do_IRQ(unsigned long vector_num, struct pt_regs * regs) | 95 | asmlinkage 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 | ||