linux/arch/arm/kernel
Masami Hiramatsu 7d341b2701 ARM: clang: Do not rely on lr register for stacktrace
[ Upstream commit b3ea5d56f2 ]

Currently the stacktrace on clang compiled arm kernel uses the 'lr'
register to find the first frame address from pt_regs. However, that
is wrong after calling another function, because the 'lr' register
is used by 'bl' instruction and never be recovered.

As same as gcc arm kernel, directly use the frame pointer (r11) of
the pt_regs to find the first frame address.

Note that this fixes kretprobe stacktrace issue only with
CONFIG_UNWINDER_FRAME_POINTER=y. For the CONFIG_UNWINDER_ARM,
we need another fix.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-11-18 19:16:19 +01:00
..
.gitignore
arch_timer.c
armksyms.c
asm-offsets.c ARM development updates for 5.15: 2021-09-09 13:25:49 -07:00
atags_compat.c
atags_parse.c
atags_proc.c
atags.h
bios32.c
bugs.c
cpuidle.c
crash_dump.c
debug.S
devtree.c
dma-isa.c
dma.c
early_printk.c
efi.c
elf.c
entry-armv.S ARM: ep93xx: remove MaverickCrunch support 2021-08-04 13:30:04 +02:00
entry-common.S ARM: 9113/1: uaccess: remove set_fs() implementation 2021-08-20 11:39:27 +01:00
entry-ftrace.S
entry-header.S
entry-v7m.S printk: Userspace format indexing support 2021-07-19 11:57:48 +02:00
fiq.c
fiqasm.S
ftrace.c ARM: 9079/1: ftrace: Add MODULE_PLTS support 2021-06-07 12:56:20 +01:00
head-common.S
head-inflate-data.c
head-nommu.S
head.S ARM: 9148/1: handle CONFIG_CPU_ENDIAN_BE32 in arch/arm/kernel/head.S 2021-10-25 13:11:34 +01:00
hibernate.c
hw_breakpoint.c
hyp-stub.S
insn.c ARM: 9078/1: Add warn suppress parameter to arm_gen_branch_link() 2021-06-07 12:56:20 +01:00
io.c
irq.c genirq: Move non-irqdomain handle_domain_irq() handling into ARM's handle_IRQ() 2021-06-10 13:09:19 +01:00
isa.c
iwmmxt.h
iwmmxt.S
jump_label.c
kgdb.c
machine_kexec.c
Makefile
module-plts.c ARM: 9098/1: ftrace: MODULE_PLT: Fix build problem without DYNAMIC_FTRACE 2021-07-05 11:52:26 +01:00
module.c
opcodes.c
paravirt.c
patch.c
perf_callchain.c
perf_event_v6.c
perf_event_v7.c arm_pmu: Fix write counter incorrect in ARMv7 big-endian mode 2021-06-01 14:17:01 +01:00
perf_event_xscale.c
perf_regs.c
phys2virt.S
pj4-cp0.c
process.c ARM development updates for 5.15: 2021-09-09 13:25:49 -07:00
psci_smp.c
ptrace.c ARM development updates for 5.15: 2021-09-09 13:25:49 -07:00
reboot.c ARM: 9096/1: Remove arm_pm_restart() 2021-06-13 18:16:48 +01:00
reboot.h
relocate_kernel.S
return_address.c
setup.c memblock: make memblock_find_in_range method private 2021-09-03 09:58:17 -07:00
signal.c entry: rseq: Call rseq_handle_notify_resume() in tracehook_notify_resume() 2021-09-22 10:24:01 -04:00
signal.h
sigreturn_codes.S
sleep.S
smccc-call.S
smp_scu.c
smp_tlb.c
smp_twd.c
smp.c printk: remove NMI tracking 2021-07-26 15:09:44 +02:00
stacktrace.c ARM: clang: Do not rely on lr register for stacktrace 2021-11-18 19:16:19 +01:00
suspend.c
swp_emulate.c
sys_arm.c
sys_oabi-compat.c ARM: 9110/1: oabi-compat: fix oabi epoll sparse warning 2021-08-20 11:39:27 +01:00
tcm.c
thumbee.c
time.c
topology.c
traps.c ARM: 9125/1: fix incorrect use of get_kernel_nofault() 2021-10-19 10:37:34 +01:00
unwind.c
v7m.c
vdso.c
vmlinux-xip.lds.S ARM: 9141/1: only warn about XIP address when not compile testing 2021-10-19 10:39:50 +01:00
vmlinux.lds.S ARM: 9088/1: Split KERNEL_OFFSET from PAGE_OFFSET 2021-06-13 18:16:40 +01:00
xscale-cp0.c