diff options
author | Atsushi Nemoto <anemo@mba.ocn.ne.jp> | 2006-10-08 12:24:23 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2006-10-09 18:20:46 -0400 |
commit | f431baa55abf8adeed0c718b51deacbc151f58f1 (patch) | |
tree | fe0383328c1d8bcb0fae7e266a437b980a05a7f9 /arch/mips/kernel/genex.S | |
parent | 441ee341ad63572f39cb8074e31806b5b1471d0b (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/kernel/genex.S')
-rw-r--r-- | arch/mips/kernel/genex.S | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/arch/mips/kernel/genex.S b/arch/mips/kernel/genex.S index 50ed77297728..5baca16993d0 100644 --- a/arch/mips/kernel/genex.S +++ b/arch/mips/kernel/genex.S | |||
@@ -133,9 +133,8 @@ NESTED(handle_int, PT_SIZE, sp) | |||
133 | 133 | ||
134 | LONG_L s0, TI_REGS($28) | 134 | LONG_L s0, TI_REGS($28) |
135 | LONG_S sp, TI_REGS($28) | 135 | LONG_S sp, TI_REGS($28) |
136 | jal plat_irq_dispatch | 136 | PTR_LA ra, ret_from_irq |
137 | LONG_S s0, TI_REGS($28) | 137 | j plat_irq_dispatch |
138 | j ret_from_irq | ||
139 | END(handle_int) | 138 | END(handle_int) |
140 | 139 | ||
141 | __INIT | 140 | __INIT |
@@ -224,9 +223,8 @@ NESTED(except_vec_vi_handler, 0, sp) | |||
224 | 223 | ||
225 | LONG_L s0, TI_REGS($28) | 224 | LONG_L s0, TI_REGS($28) |
226 | LONG_S sp, TI_REGS($28) | 225 | LONG_S sp, TI_REGS($28) |
227 | jalr v0 | ||
228 | LONG_S s0, TI_REGS($28) | ||
229 | PTR_LA ra, ret_from_irq | 226 | PTR_LA ra, ret_from_irq |
227 | jr v0 | ||
230 | END(except_vec_vi_handler) | 228 | END(except_vec_vi_handler) |
231 | 229 | ||
232 | /* | 230 | /* |