aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/traps.c
diff options
context:
space:
mode:
authorAtsushi Nemoto <anemo@mba.ocn.ne.jp>2006-09-29 05:02:51 -0400
committerRalf Baechle <ralf@linux-mips.org>2006-10-01 18:16:59 -0400
commit1924600cdb3143cdcc32b6fa43325739503659b9 (patch)
tree002a03fe8e97db3f3a2b07d1d0d27381f80357b9 /arch/mips/kernel/traps.c
parent23126692e30ec22760e0ef932c3c2fff00d440bb (diff)
[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.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index 440b8651fd8b..b7292a56d4cd 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)
115 printk("Call Trace:\n"); 115 printk("Call Trace:\n");
116 do { 116 do {
117 print_ip_sym(pc); 117 print_ip_sym(pc);
118 pc = unwind_stack(task, &sp, pc, ra); 118 pc = unwind_stack(task, &sp, pc, &ra);
119 ra = 0;
120 } while (pc); 119 } while (pc);
121 printk("\n"); 120 printk("\n");
122} 121}