diff options
| author | Alexei Starovoitov <ast@kernel.org> | 2026-10-21 22:08:44 +0000 |
|---|---|---|
| committer | Alexei Starovoitov <ast@kernel.org> | 2026-10-24 03:54:41 +0000 |
| commit | 02da62c2f89668fa1adafa3cc806025b560e45ce (patch) | |
| tree | 6fa5f62a95e8d349d9a9466c8f6437a6eedc23f8 /include | |
| parent | 605e6a0e5aff50a6bcc7a6c8731e5d767b897e3b (diff) | |
bpf, x86: Use emit_rsb_call() to call bpf_unwind_target()
clang inlines emit_unwind_ret_addr() and emit_patch() into do_jit() and
folds 'bpf_unwind_target - X86_PATCH_SIZE' into one relocation. It points
to a nop in the padding in front of the function, and objtool complains:
vmlinux.o: warning: objtool: do_jit+0x1330: relocation to !ENDBR: .text+0xc7fab
It's only used to compute rel32 of a direct call, so nothing is wrong at
run time.
emit_rsb_call() does call depth accounting too and hides func from
the optimizer. Use it instead of open coding.
Fixes: cff94a3d78d8 ("bpf, x86: Support unwind_goto and unwind_exit")
Reported-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Tested-by: Nathan Chancellor <nathan@kernel.org> # build
Link: https://patch.msgid.link/20261021220844.239400-1-alexei.starovoitov@gmail.com
Closes: https://lore.kernel.org/bpf/20261021201456.GA3197963@ax162/
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions
