Commit 812f7702 authored by Kumar Kartikeya Dwivedi's avatar Kumar Kartikeya Dwivedi Committed by Alexei Starovoitov
Browse files

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: 2fb76182 ("bpf, x86: Add x86 JIT support for timed may_goto")
Reported-by: default avatarkernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202503071350.QOhsHVaW-lkp@intel.com/


Signed-off-by: default avatarKumar Kartikeya Dwivedi <memxor@gmail.com>
Link: https://lore.kernel.org/r/20250315013039.1625048-1-memxor@gmail.com


Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent bb2243f4
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -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)