linux/arch/arm64
Daniel Borkmann a2284d912b bpf, arm64: fix stack_depth tracking in combination with tail calls
Using dynamic stack_depth tracking in arm64 JIT is currently broken in
combination with tail calls. In prologue, we cache ctx->stack_size and
adjust SP reg for setting up function call stack, and tearing it down
again in epilogue. Problem is that when doing a tail call, the cached
ctx->stack_size might not be the same.

One way to fix the problem with minimal overhead is to re-adjust SP in
emit_bpf_tail_call() and properly adjust it to the current program's
ctx->stack_size. Tested on Cavium ThunderX ARMv8.

Fixes: f1c9eed7f4 ("bpf, arm64: take advantage of stack_depth tracking")
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2018-01-16 11:29:15 -08:00
..
boot arm64: dts: uniphier: fix gpio-ranges property of PXs3 SoC 2018-01-04 17:09:01 +01:00
configs arm64: defconfig: enable CONFIG_GPIO_UNIPHIER 2017-10-30 14:41:54 +01:00
crypto License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
include arm64/sve: Report SVE to userspace via CPUID only if supported 2017-12-14 15:14:30 +00:00
kernel arm64: fpsimd: Fix copying of FP state from signal frame into task struct 2017-12-15 16:12:35 +00:00
kvm ARM fixes: 2017-12-21 10:44:13 -08:00
lib arm64 updates for 4.15 2017-11-15 10:56:56 -08:00
mm arm64: fix CONFIG_DEBUG_WX address reporting 2017-12-14 10:18:23 +00:00
net bpf, arm64: fix stack_depth tracking in combination with tail calls 2018-01-16 11:29:15 -08:00
xen xen/privcmd: Add IOCTL_PRIVCMD_DM_OP 2017-02-14 15:13:43 -05:00
Kconfig arm64: Add software workaround for Falkor erratum 1041 2017-12-12 11:45:19 +00:00
Kconfig.debug arm64: relocation testing module 2017-04-04 17:03:32 +01:00
Kconfig.platforms ARM: SoC driver updates for v4.15 2017-11-16 16:05:01 -08:00
Makefile arm64: ftrace: emit ftrace-mod.o contents through code 2017-12-01 13:04:59 +00:00