aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/dec/int-handler.S
diff options
context:
space:
mode:
authorAtsushi Nemoto <anemo@mba.ocn.ne.jp>2006-10-08 12:24:23 -0400
committerRalf Baechle <ralf@linux-mips.org>2006-10-09 18:20:46 -0400
commitf431baa55abf8adeed0c718b51deacbc151f58f1 (patch)
treefe0383328c1d8bcb0fae7e266a437b980a05a7f9 /arch/mips/dec/int-handler.S
parent441ee341ad63572f39cb8074e31806b5b1471d0b (diff)
[MIPS] ret_from_irq adjustment
Make sure that RA on top of interrupt stack is an address of ret_from_irq, so that dump_stack etc. can trace info interrupted context. Also this patch fixes except_vec_vi_handler and __smtc_ipi_vector which seems broken. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/dec/int-handler.S')
-rw-r--r--arch/mips/dec/int-handler.S11
1 files changed, 4 insertions, 7 deletions
diff --git a/arch/mips/dec/int-handler.S b/arch/mips/dec/int-handler.S
index 55d60d5e0e86..31dd47d1002d 100644
--- a/arch/mips/dec/int-handler.S
+++ b/arch/mips/dec/int-handler.S
@@ -266,10 +266,8 @@
266handle_it: 266handle_it:
267 LONG_L s0, TI_REGS($28) 267 LONG_L s0, TI_REGS($28)
268 LONG_S sp, TI_REGS($28) 268 LONG_S sp, TI_REGS($28)
269 jal do_IRQ 269 PTR_LA ra, ret_from_irq
270 LONG_S s0, TI_REGS($28) 270 j do_IRQ
271
272 j ret_from_irq
273 nop 271 nop
274 272
275#ifdef CONFIG_32BIT 273#ifdef CONFIG_32BIT
@@ -279,9 +277,8 @@ fpu:
279#endif 277#endif
280 278
281spurious: 279spurious:
282 jal spurious_interrupt 280 PTR_LA ra, _ret_from_irq
283 nop 281 j spurious_interrupt
284 j ret_from_irq
285 nop 282 nop
286 END(plat_irq_dispatch) 283 END(plat_irq_dispatch)
287 284