diff options
author | Helge Deller <deller@gmx.de> | 2018-08-05 00:03:29 +0200 |
---|---|---|
committer | Helge Deller <deller@gmx.de> | 2018-08-13 09:54:17 +0200 |
commit | c8921d72e390cb6fca3fb2b0c2badfda851647eb (patch) | |
tree | 8c6aec1a9405da9caad70088a7dfd910b71b6675 /arch/parisc/kernel/traps.c | |
parent | 3b885ac1dc35b87a39ee176a6c7e2af9c789d8b8 (diff) | |
download | linux-stable-c8921d72e390cb6fca3fb2b0c2badfda851647eb.tar.gz linux-stable-c8921d72e390cb6fca3fb2b0c2badfda851647eb.tar.bz2 linux-stable-c8921d72e390cb6fca3fb2b0c2badfda851647eb.zip |
parisc: Fix and improve kernel stack unwinding
This patchset fixes and improves stack unwinding a lot:
1. Show backward stack traces with up to 30 callsites
2. Add callinfo to ENTRY_CFI() such that every assembler function will get an
entry in the unwind table
3. Use constants instead of numbers in call_on_stack()
4. Do not depend on CONFIG_KALLSYMS to generate backtraces.
5. Speed up backtrace generation
Make sure you have this patch to GNU as installed:
https://sourceware.org/ml/binutils/2018-07/msg00474.html
Without this patch, unwind info in the kernel is often wrong for various
functions.
Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to 'arch/parisc/kernel/traps.c')
-rw-r--r-- | arch/parisc/kernel/traps.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c index 4309ad31a874..318815212518 100644 --- a/arch/parisc/kernel/traps.c +++ b/arch/parisc/kernel/traps.c @@ -172,7 +172,7 @@ static void do_show_stack(struct unwind_frame_info *info) int i = 1; printk(KERN_CRIT "Backtrace:\n"); - while (i <= 16) { + while (i <= MAX_UNWIND_ENTRIES) { if (unwind_once(info) < 0 || info->ip == 0) break; |