linux/arch/arm64/kernel
Olof Johansson e306dfd06f ARM64: unwind: Fix PC calculation
The frame PC value in the unwind code used to just take the saved LR
value and use that.  That's incorrect as a stack trace, since it shows
the return path stack, not the call path stack.

In particular, it shows faulty information in case the bl is done as
the very last instruction of one label, since the return point will be
in the next label. That can easily be seen with tail calls to panic(),
which is marked __noreturn and thus doesn't have anything useful after it.

Easiest here is to just correct the unwind code and do a -4, to get the
actual call site for the backtrace instead of the return site.

Signed-off-by: Olof Johansson <olof@lixom.net>
Cc: stable@vger.kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2014-02-17 09:16:33 +00:00
..
vdso arm64: vdso: fix coarse clock handling 2014-02-05 11:55:30 +00:00
.gitignore
arm64ksyms.c
asm-offsets.c
cpu_ops.c
cputable.c
debug-monitors.c
early_printk.c
entry-fpsimd.S
entry.S arm64: fix typo in entry.S 2014-01-13 13:55:13 +00:00
fpsimd.c
head.S
hw_breakpoint.c arm64: kernel: restore HW breakpoint registers in cpu_suspend 2014-01-10 17:51:35 +00:00
hyp-stub.S
insn.c arm64: introduce aarch64_insn_gen_{nop|branch_imm}() helper functions 2014-01-08 15:21:29 +00:00
io.c
irq.c
jump_label.c arm64, jump label: optimize jump label implementation 2014-01-08 15:23:53 +00:00
kuser32.S arm64: atomics: fix use of acquire + release for full barrier semantics 2014-02-07 16:45:43 +00:00
Makefile arm64, jump label: optimize jump label implementation 2014-01-08 15:23:53 +00:00
module.c arm64: move encode_insn_immediate() from module.c to insn.c 2014-01-08 15:21:29 +00:00
perf_event.c
process.c arm64: FIQs are unused 2014-01-30 13:51:43 +00:00
psci.c
ptrace.c
setup.c
signal.c
signal32.c
sleep.S
smp_spin_table.c
smp.c arm64: FIQs are unused 2014-01-30 13:51:43 +00:00
stacktrace.c ARM64: unwind: Fix PC calculation 2014-02-17 09:16:33 +00:00
suspend.c arm64: kernel: fix per-cpu offset restore on resume 2014-01-24 14:27:40 +00:00
sys_compat.c
sys.c
sys32.S
time.c
traps.c
vdso.c arm64: vdso: update wtm fields for CLOCK_MONOTONIC_COARSE 2014-02-05 11:55:49 +00:00
vmlinux.lds.S