mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 04:04:43 +01:00
bpf, x86: Fix objtool warning for timed may_goto
Kernel test robot reported "call without frame pointer save/setup"
warning in objtool. This will make stack traces unreliable on
CONFIG_UNWINDER_FRAME_POINTER=y, however it works on
CONFIG_UNWINDER_ORC=y. Fix this by creating a stack frame for the
function.
Fixes: 2fb761823e ("bpf, x86: Add x86 JIT support for timed may_goto")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202503071350.QOhsHVaW-lkp@intel.com/
Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Link: https://lore.kernel.org/r/20250315013039.1625048-1-memxor@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
bb2243f432
commit
812f7702d8
1 changed files with 14 additions and 3 deletions
|
|
@ -11,6 +11,16 @@
|
|||
SYM_FUNC_START(arch_bpf_timed_may_goto)
|
||||
ANNOTATE_NOENDBR
|
||||
|
||||
/*
|
||||
* r10 passes us stack depth, load the pointer to count and timestamp
|
||||
* into r10 by adding it to BPF frame pointer.
|
||||
*/
|
||||
leaq (%rbp, %r10, 1), %r10
|
||||
|
||||
/* Setup frame. */
|
||||
pushq %rbp
|
||||
movq %rsp, %rbp
|
||||
|
||||
/* Save r0-r5. */
|
||||
pushq %rax
|
||||
pushq %rdi
|
||||
|
|
@ -20,10 +30,10 @@ SYM_FUNC_START(arch_bpf_timed_may_goto)
|
|||
pushq %r8
|
||||
|
||||
/*
|
||||
* r10 passes us stack depth, load the pointer to count and timestamp as
|
||||
* first argument to the call below.
|
||||
* r10 has the pointer to count and timestamp, pass it as first
|
||||
* argument.
|
||||
*/
|
||||
leaq (%rbp, %r10, 1), %rdi
|
||||
movq %r10, %rdi
|
||||
|
||||
/* Emit call depth accounting for call below. */
|
||||
CALL_DEPTH_ACCOUNT
|
||||
|
|
@ -40,5 +50,6 @@ SYM_FUNC_START(arch_bpf_timed_may_goto)
|
|||
popq %rdi
|
||||
popq %rax
|
||||
|
||||
leave
|
||||
RET
|
||||
SYM_FUNC_END(arch_bpf_timed_may_goto)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue