mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-22 09:22:37 +00:00
60339fad5c
When CONFIG_FUNCTION_GRAPH_TRACER is enabled the function graph tracer may patch return addresses on the stack with the address of return_to_handler(). This really confuses the DWARF unwinder because it will try find the caller of return_to_handler(), not the caller of the real return address. So teach the DWARF unwinder how to find the real return address whenever it encounters return_to_handler(). This patch does not cope very well when multiple return addresses on the stack have been patched. To make it work properly it would require state to track how many return_to_handler()'s have been seen so that we'd know where to look in current->curr_ret_stack[]. So for now, instead of trying to handle this, just moan if more than one return address on the stack has been patched. Signed-off-by: Matt Fleming <matt@console-pimps.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org> |
||
---|---|---|
.. | ||
cpu | ||
vsyscall | ||
.gitignore | ||
asm-offsets.c | ||
cpufreq.c | ||
crash_dump.c | ||
debugtraps.S | ||
disassemble.c | ||
dumpstack.c | ||
dwarf.c | ||
early_printk.c | ||
entry-common.S | ||
ftrace.c | ||
gpio.c | ||
head_32.S | ||
head_64.S | ||
idle.c | ||
init_task.c | ||
io_generic.c | ||
io_trapped.c | ||
io.c | ||
irq.c | ||
kgdb.c | ||
kprobes.c | ||
localtimer.c | ||
machine_kexec.c | ||
machvec.c | ||
Makefile | ||
module.c | ||
nmi_debug.c | ||
process_32.c | ||
process_64.c | ||
ptrace_32.c | ||
ptrace_64.c | ||
relocate_kernel.S | ||
setup.c | ||
sh_bios.c | ||
sh_ksyms_32.c | ||
sh_ksyms_64.c | ||
signal_32.c | ||
signal_64.c | ||
smp.c | ||
stacktrace.c | ||
swsusp.c | ||
sys_sh32.c | ||
sys_sh64.c | ||
sys_sh.c | ||
syscalls_32.S | ||
syscalls_64.S | ||
time.c | ||
topology.c | ||
traps_32.c | ||
traps_64.c | ||
traps.c | ||
unwinder.c | ||
vmlinux.lds.S |