diff options
Diffstat (limited to 'arch/i386/kernel/traps.c')
-rw-r--r-- | arch/i386/kernel/traps.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/arch/i386/kernel/traps.c b/arch/i386/kernel/traps.c index 3facc8fcb91e..0d4005dc06c5 100644 --- a/arch/i386/kernel/traps.c +++ b/arch/i386/kernel/traps.c | |||
@@ -190,11 +190,11 @@ static void show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs, | |||
190 | if (unw_ret > 0 && !arch_unw_user_mode(&info)) { | 190 | if (unw_ret > 0 && !arch_unw_user_mode(&info)) { |
191 | #ifdef CONFIG_STACK_UNWIND | 191 | #ifdef CONFIG_STACK_UNWIND |
192 | print_symbol("DWARF2 unwinder stuck at %s\n", | 192 | print_symbol("DWARF2 unwinder stuck at %s\n", |
193 | UNW_PC(info.regs)); | 193 | UNW_PC(&info)); |
194 | if (call_trace == 1) { | 194 | if (call_trace == 1) { |
195 | printk("Leftover inexact backtrace:\n"); | 195 | printk("Leftover inexact backtrace:\n"); |
196 | if (UNW_SP(info.regs)) | 196 | if (UNW_SP(&info)) |
197 | stack = (void *)UNW_SP(info.regs); | 197 | stack = (void *)UNW_SP(&info); |
198 | } else if (call_trace > 1) | 198 | } else if (call_trace > 1) |
199 | return; | 199 | return; |
200 | else | 200 | else |
@@ -453,11 +453,9 @@ void die(const char * str, struct pt_regs * regs, long err) | |||
453 | if (in_interrupt()) | 453 | if (in_interrupt()) |
454 | panic("Fatal exception in interrupt"); | 454 | panic("Fatal exception in interrupt"); |
455 | 455 | ||
456 | if (panic_on_oops) { | 456 | if (panic_on_oops) |
457 | printk(KERN_EMERG "Fatal exception: panic in 5 seconds\n"); | 457 | panic("Fatal exception: panic_on_oops"); |
458 | ssleep(5); | 458 | |
459 | panic("Fatal exception"); | ||
460 | } | ||
461 | oops_exit(); | 459 | oops_exit(); |
462 | do_exit(SIGSEGV); | 460 | do_exit(SIGSEGV); |
463 | } | 461 | } |
@@ -1249,8 +1247,10 @@ static int __init call_trace_setup(char *s) | |||
1249 | call_trace = -1; | 1247 | call_trace = -1; |
1250 | else if (strcmp(s, "both") == 0) | 1248 | else if (strcmp(s, "both") == 0) |
1251 | call_trace = 0; | 1249 | call_trace = 0; |
1252 | else if (strcmp(s, "new") == 0) | 1250 | else if (strcmp(s, "newfallback") == 0) |
1253 | call_trace = 1; | 1251 | call_trace = 1; |
1252 | else if (strcmp(s, "new") == 2) | ||
1253 | call_trace = 2; | ||
1254 | return 1; | 1254 | return 1; |
1255 | } | 1255 | } |
1256 | __setup("call_trace=", call_trace_setup); | 1256 | __setup("call_trace=", call_trace_setup); |