diff options
author | Atsushi Nemoto <anemo@mba.ocn.ne.jp> | 2006-09-29 18:02:51 +0900 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2006-10-01 23:16:59 +0100 |
commit | 1924600cdb3143cdcc32b6fa43325739503659b9 (patch) | |
tree | 002a03fe8e97db3f3a2b07d1d0d27381f80357b9 /arch/mips/kernel/traps.c | |
parent | 23126692e30ec22760e0ef932c3c2fff00d440bb (diff) | |
download | kernel_samsung_smdk4412-1924600cdb3143cdcc32b6fa43325739503659b9.zip kernel_samsung_smdk4412-1924600cdb3143cdcc32b6fa43325739503659b9.tar.gz kernel_samsung_smdk4412-1924600cdb3143cdcc32b6fa43325739503659b9.tar.bz2 |
[MIPS] Make unwind_stack() can dig into interrupted context
If the PC was ret_from_irq or ret_from_exception, there will be no
more normal stackframe. Instead of stopping the unwinding, use PC and
RA saved by an exception handler to continue unwinding into the
interrupted context. This also simplifies the CONFIG_STACKTRACE code.
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/traps.c')
-rw-r--r-- | arch/mips/kernel/traps.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index 440b865..b7292a5 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c @@ -115,8 +115,7 @@ static void show_backtrace(struct task_struct *task, struct pt_regs *regs) printk("Call Trace:\n"); do { print_ip_sym(pc); - pc = unwind_stack(task, &sp, pc, ra); - ra = 0; + pc = unwind_stack(task, &sp, pc, &ra); } while (pc); printk("\n"); } |