From 812f7702d83d84cdf776d75e2ba5386de9e8acc0 Mon Sep 17 00:00:00 2001 From: Kumar Kartikeya Dwivedi Date: Fri, 14 Mar 2025 18:30:39 -0700 Subject: [PATCH] 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: 2fb761823ead ("bpf, x86: Add x86 JIT support for timed may_goto") Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202503071350.QOhsHVaW-lkp@intel.com/ Signed-off-by: Kumar Kartikeya Dwivedi Link: https://lore.kernel.org/r/20250315013039.1625048-1-memxor@gmail.com Signed-off-by: Alexei Starovoitov --- arch/x86/net/bpf_timed_may_goto.S | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/arch/x86/net/bpf_timed_may_goto.S b/arch/x86/net/bpf_timed_may_goto.S index 20de4a14dc4c..54c690cae190 100644 --- a/arch/x86/net/bpf_timed_may_goto.S +++ b/arch/x86/net/bpf_timed_may_goto.S @@ -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) -- 2.50.1