summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKumar Kartikeya Dwivedi <memxor@gmail.com>2025-03-14 18:30:39 -0700
committerAlexei Starovoitov <ast@kernel.org>2025-03-15 15:55:14 -0700
commit812f7702d83d84cdf776d75e2ba5386de9e8acc0 (patch)
tree1e2be1784d505a3cbd1d574220a7fc2231dee1c0
parentbb2243f4328bc2e4aa4d8566a5a0a7f9ce947570 (diff)
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 <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>
-rw-r--r--arch/x86/net/bpf_timed_may_goto.S17
1 files 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)