|
@@ -190,11 +190,11 @@ static void show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs,
|
|
if (unw_ret > 0 && !arch_unw_user_mode(&info)) {
|
|
if (unw_ret > 0 && !arch_unw_user_mode(&info)) {
|
|
#ifdef CONFIG_STACK_UNWIND
|
|
#ifdef CONFIG_STACK_UNWIND
|
|
print_symbol("DWARF2 unwinder stuck at %s\n",
|
|
print_symbol("DWARF2 unwinder stuck at %s\n",
|
|
- UNW_PC(info.regs));
|
|
|
|
|
|
+ UNW_PC(&info));
|
|
if (call_trace == 1) {
|
|
if (call_trace == 1) {
|
|
printk("Leftover inexact backtrace:\n");
|
|
printk("Leftover inexact backtrace:\n");
|
|
- if (UNW_SP(info.regs))
|
|
|
|
- stack = (void *)UNW_SP(info.regs);
|
|
|
|
|
|
+ if (UNW_SP(&info))
|
|
|
|
+ stack = (void *)UNW_SP(&info);
|
|
} else if (call_trace > 1)
|
|
} else if (call_trace > 1)
|
|
return;
|
|
return;
|
|
else
|
|
else
|
|
@@ -1249,8 +1249,10 @@ static int __init call_trace_setup(char *s)
|
|
call_trace = -1;
|
|
call_trace = -1;
|
|
else if (strcmp(s, "both") == 0)
|
|
else if (strcmp(s, "both") == 0)
|
|
call_trace = 0;
|
|
call_trace = 0;
|
|
- else if (strcmp(s, "new") == 0)
|
|
|
|
|
|
+ else if (strcmp(s, "newfallback") == 0)
|
|
call_trace = 1;
|
|
call_trace = 1;
|
|
|
|
+ else if (strcmp(s, "new") == 2)
|
|
|
|
+ call_trace = 2;
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|
|
__setup("call_trace=", call_trace_setup);
|
|
__setup("call_trace=", call_trace_setup);
|