2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-26 22:24:09 +08:00
linux-next/arch/s390
Heiko Carstens 1bca09f714 s390/dumpstack: fix call chain walking
dumpstack() did not always print a sane callchain when being called.
The reason is that show_trace() accessed register 15 directly to get
the current stack pointer and passed that pointer to __show_trace()
which expects a valid stack frame pointer as argument.
However due to tail call optimization the stack frame may not exist
anymore when __show_trace() gets called and therefore an invalid
stack frame pointer gets passed.
To prevent that disable tail call optimization for call chain walking
functions.
So move all the show_* functions to a dumpstack.c file like other
architectures have it already and add a -fno-optimize-sibling-calls
compile flag to both dumpstack.c and stacktrace.c to prevent tail
call optimization.

Fixes callchains that looked e.g. like this:

[   12.868258] Call Trace:
[   12.868262] ([<0000000000008000>] 0x8000)

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2013-04-17 14:07:28 +02:00
..
appldata s390/time: rename tod clock access functions 2013-02-14 15:55:10 +01:00
boot s390: fix linker script for 31 bit builds 2012-10-18 17:50:10 +02:00
crypto s390/crypto: Don't panic after crypto instruction failures 2012-11-23 11:14:27 +01:00
hypfs s390/hypfs: Use PTR_RET function 2013-04-17 14:07:28 +02:00
include s390/dis: use explicit buf len 2013-04-17 14:07:25 +02:00
kernel s390/dumpstack: fix call chain walking 2013-04-17 14:07:28 +02:00
kvm s390/dis: use explicit buf len 2013-04-17 14:07:25 +02:00
lib s390/uaccess: fix page table walk 2013-04-02 08:53:08 +02:00
math-emu s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
mm s390/cmm: Removed useless label 2013-04-17 14:07:27 +02:00
net s390/bpf,jit: use kcalloc instead of kmalloc and memset 2013-04-17 14:07:27 +02:00
oprofile s390/irq: remove split irq fields from /proc/stat 2013-01-08 10:57:07 +01:00
pci s390/pci: use kmem_cache_zalloc instead of kmem_cache_alloc/memset 2013-04-17 14:07:24 +02:00
defconfig s390: update defconfig 2012-09-26 15:45:29 +02:00
Kbuild s390/pci: base support 2012-11-30 15:40:45 +01:00
Kconfig Select VIRT_TO_BUS directly where needed 2013-03-12 11:16:40 -07:00
Kconfig.debug s390/mm: add page table dumper 2012-10-09 14:16:58 +02:00
Makefile s390: use -fPIC for module compile 2013-01-12 18:49:26 +01:00