Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

[PATCH] i386: Do backtrace fallback too

Similar patch to earlier x86-64 patch. When the dwarf2 unwinder fails
dump the left over stack with the old unwinder.

Also some clarifications in the headers.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by

Andi Kleen and committed by
Linus Torvalds
c97d20a6 b783fd92

+14 -3
+14 -3
arch/i386/kernel/traps.c
··· 187 187 if (unwind_init_blocked(&info, task) == 0) 188 188 unw_ret = show_trace_unwind(&info, log_lvl); 189 189 } 190 - if (unw_ret > 0) { 191 - if (call_trace > 0) 190 + if (unw_ret > 0 && !arch_unw_user_mode(&info)) { 191 + #ifdef CONFIG_STACK_UNWIND 192 + print_symbol("DWARF2 unwinder stuck at %s\n", 193 + UNW_PC(info.regs)); 194 + if (call_trace == 1) { 195 + printk("Leftover inexact backtrace:\n"); 196 + if (UNW_SP(info.regs)) 197 + stack = (void *)UNW_SP(info.regs); 198 + } else if (call_trace > 1) 192 199 return; 193 - printk("%sLegacy call trace:\n", log_lvl); 200 + else 201 + printk("Full inexact backtrace again:\n"); 202 + #else 203 + printk("Inexact backtrace:\n"); 204 + #endif 194 205 } 195 206 } 196 207