android_kernel_oneplus_msm8998/arch/arm64/kernel
Mark Rutland 2d6f9a86cd arm64: ftrace: don't adjust the LR value
[ Upstream commit 6e803e2e6e367db9a0d6ecae1bd24bb5752011bd ]

The core ftrace code requires that when it is handed the PC of an
instrumented function, this PC is the address of the instrumented
instruction. This is necessary so that the core ftrace code can identify
the specific instrumentation site. Since the instrumented function will
be a BL, the address of the instrumented function is LR - 4 at entry to
the ftrace code.

This fixup is applied in the mcount_get_pc and mcount_get_pc0 helpers,
which acquire the PC of the instrumented function.

The mcount_get_lr helper is used to acquire the LR of the instrumented
function, whose value does not require this adjustment, and cannot be
adjusted to anything meaningful. No adjustment of this value is made on
other architectures, including arm. However, arm64 adjusts this value by
4.

This patch brings arm64 in line with other architectures and removes the
adjustment of the LR value.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: AKASHI Takahiro <takahiro.akashi@linaro.org>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Torsten Duwe <duwe@suse.de>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-02-20 10:13:07 +01:00
..
vdso arm64: build vdso without libgcov 2015-11-12 15:18:07 +00:00
.gitignore
acpi.c Power management and ACPI updates for v4.4-rc1 2015-11-04 18:10:13 -08:00
alternative.c arm64: alternatives: ensure secondary CPUs execute ISB after patching 2015-08-04 18:52:09 +01:00
arm64ksyms.c arm64: add KASAN support 2015-10-12 17:46:36 +01:00
armv8_deprecated.c arm64: armv8_deprecated: ensure extension of addr 2017-06-14 13:16:27 +02:00
asm-offsets.c arm64: kernel: Save and restore UAO and addr_limit on exception entry 2016-08-20 18:09:16 +02:00
cacheinfo.c
cpu_errata.c arm64: Add workaround for Cavium erratum 27456 2016-09-15 08:27:44 +02:00
cpu_ops.c arm64: force CONFIG_SMP=y and remove redundant #ifdefs 2015-07-27 11:08:40 +01:00
cpufeature.c arm64: cpufeature: Track 32bit EL0 support 2018-10-10 08:52:09 +02:00
cpuidle.c arm64: cpuidle: add __init section marker to arm_cpuidle_init 2015-07-02 17:44:27 +01:00
cpuinfo.c arm64: Provide "model name" in /proc/cpuinfo for PER_LINUX32 tasks 2016-06-24 10:18:19 -07:00
debug-monitors.c arm64: debug: avoid resetting stepping state machine when TIF_SINGLESTEP 2016-10-07 15:23:42 +02:00
efi-entry.S arm64/efi: isolate EFI stub from the kernel proper 2015-10-12 16:20:12 +01:00
efi.c arm64: efi: fix initcall return values 2015-11-26 18:15:54 +00:00
entry-fpsimd.S
entry-ftrace.S arm64: ftrace: don't adjust the LR value 2019-02-20 10:13:07 +01:00
entry.S arm64: Add trace_hardirqs_off annotation in ret_to_user 2018-09-29 03:08:54 -07:00
entry32.S arm64: entry32: remove pointless register assignment 2015-07-10 16:47:13 +01:00
fpsimd.c arm64: fpsimd: Prevent registers leaking across exec 2017-09-02 07:06:52 +02:00
ftrace.c
head.S arm64/kvm: consistently handle host HCR_EL2 flags 2019-01-26 09:42:49 +01:00
hw_breakpoint.c arm64: hw_breakpoint: fix watchpoint matching for tagged pointers 2017-06-14 13:16:27 +02:00
hyp-stub.S arm64: hyp-stub: Forbid kprobing of the hyp-stub 2019-02-06 19:43:07 +01:00
image.h arm64: Add page size to the kernel image header 2015-10-19 17:54:41 +01:00
insn.c arm64: convert patch_lock to raw lock 2015-10-05 18:30:29 +01:00
io.c
irq.c arm64: fix a migrating irq bug when hotplug cpu 2015-10-09 17:40:35 +01:00
jump_label.c jump_label: Rename JUMP_LABEL_{EN,DIS}ABLE to JUMP_LABEL_{JMP,NOP} 2015-08-03 11:34:12 +02:00
kgdb.c arm64/debug: Simplify BRK insn opcode declarations 2015-07-27 11:08:42 +01:00
kuser32.S
Makefile arm64/efi: move arm64 specific stub C code to libstub 2015-10-30 16:02:52 +00:00
module.c arm64: add KASAN support 2015-10-12 17:46:36 +01:00
pci.c ARM64: PCI: do not enable resources on PROBE_ONLY systems 2015-07-30 20:17:07 +01:00
perf_callchain.c arm64: perf: factor out callchain code 2015-07-27 11:08:39 +01:00
perf_event.c arm64: perf: set suppress_bind_attrs flag to true 2019-01-26 09:42:53 +01:00
perf_regs.c
process.c arm64: fpsimd: Prevent registers leaking from dead tasks 2017-12-16 10:33:50 +01:00
psci-call.S
psci.c drivers: firmware: psci: move power_state handling to generic code 2015-10-02 14:35:16 +01:00
ptrace.c arm64/ptrace: Reject attempts to set incomplete hardware breakpoint fields 2017-01-26 08:23:49 +01:00
return_address.c
setup.c arm64 updates for 4.4: 2015-11-04 14:47:13 -08:00
signal.c arm64: Rework valid_user_regs 2016-07-27 09:47:33 -07:00
signal32.c arm64: Rework valid_user_regs 2016-07-27 09:47:33 -07:00
sleep.S arm64: mm: ensure patched kernel text is fetched from PoU 2015-08-05 10:05:20 +01:00
smp.c arm64: make secondary_start_kernel() notrace 2018-08-24 13:26:55 +02:00
smp_spin_table.c
stacktrace.c Revert "ARM64: unwind: Fix PC calculation" 2015-10-28 17:07:07 +00:00
suspend.c arm64: suspend: Reconfigure PSTATE after resume from idle 2016-12-08 07:15:25 +01:00
sys.c
sys32.c
sys_compat.c
time.c clocksource: cosmetic: Drop OF 'dependency' from symbols 2015-10-01 02:18:39 +02:00
topology.c arm64: kernel: remove non-legit DT warnings when booting using ACPI 2015-07-27 11:08:41 +01:00
trace-events-emulation.h
traps.c arm64: Disable unhandled signal log messages by default 2018-02-28 10:17:23 +01:00
vdso.c arm64: VDSO: fix coarse clock monotonicity regression 2015-08-10 15:37:45 +01:00
vmlinux.lds.S arm64: update linker script to increased L1_CACHE_BYTES value 2015-12-07 17:22:24 +00:00