aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPuranjay Mohan <[email protected]>2024-07-08 11:47:58 +0000
committerDaniel Borkmann <[email protected]>2024-07-08 15:44:08 +0200
commita5912c37faf723c0812a6a2c9dd18ffbd34a233b (patch)
tree03cb7edb8f866105dad4b46de6a812839a732c0e
parentfd8db07705c55a995c42b1e71afc42faad675b0b (diff)
riscv, bpf: Optimize stack usage of trampoline
When BPF_TRAMP_F_CALL_ORIG is not set, stack space for passing arguments on stack doesn't need to be reserved because the original function is not called. Only reserve space for stacked arguments when BPF_TRAMP_F_CALL_ORIG is set. Signed-off-by: Puranjay Mohan <[email protected]> Signed-off-by: Daniel Borkmann <[email protected]> Acked-by: Pu Lehui <[email protected]> Link: https://lore.kernel.org/bpf/[email protected]
-rw-r--r--arch/riscv/net/bpf_jit_comp64.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/riscv/net/bpf_jit_comp64.c b/arch/riscv/net/bpf_jit_comp64.c
index 685c7389ae7e..0795efdd3519 100644
--- a/arch/riscv/net/bpf_jit_comp64.c
+++ b/arch/riscv/net/bpf_jit_comp64.c
@@ -892,7 +892,7 @@ static int __arch_prepare_bpf_trampoline(struct bpf_tramp_image *im,
stack_size += 8;
sreg_off = stack_size;
- if (nr_arg_slots - RV_MAX_REG_ARGS > 0)
+ if ((flags & BPF_TRAMP_F_CALL_ORIG) && (nr_arg_slots - RV_MAX_REG_ARGS > 0))
stack_size += (nr_arg_slots - RV_MAX_REG_ARGS) * 8;
stack_size = round_up(stack_size, STACK_ALIGN);