On Tue, Jan 16, 2018 at 03:46:08AM +0100, Daniel Borkmann wrote: > 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: f1c9eed7f437 ("bpf, arm64: take advantage of stack_depth tracking") > Signed-off-by: Daniel Borkmann <dan...@iogearbox.net>
Tested on arm64 qcom server and applied to bpf tree. Thank you Daniel.