]> www.infradead.org Git - users/hch/misc.git/commitdiff
LoongArch: BPF: Remove duplicated flags check
authorHengqi Chen <hengqi.chen@gmail.com>
Thu, 2 Oct 2025 14:39:52 +0000 (22:39 +0800)
committerHuacai Chen <chenhuacai@loongson.cn>
Thu, 2 Oct 2025 14:39:52 +0000 (22:39 +0800)
The check for (BPF_TRAMP_F_ORIG_STACK | BPF_TRAMP_F_SHARE_IPMODIFY) is
duplicated in __arch_prepare_bpf_trampoline(). Remove it.

While at it, make sure stack_size and nargs are initialized once.

Cc: stable@vger.kernel.org
Tested-by: Vincent Li <vincent.mc.li@gmail.com>
Signed-off-by: Hengqi Chen <hengqi.chen@gmail.com>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
arch/loongarch/net/bpf_jit.c

index acf5b779c6516224fcc1e547447f1f7f3fd5d5d3..61135f8bcdad9f8b74a7ebb17131b942f032e539 100644 (file)
@@ -1451,7 +1451,7 @@ static int __arch_prepare_bpf_trampoline(struct jit_ctx *ctx, struct bpf_tramp_i
                                         void *func_addr, u32 flags)
 {
        int i, ret, save_ret;
-       int stack_size = 0, nargs = 0;
+       int stack_size, nargs;
        int retval_off, args_off, nargs_off, ip_off, run_ctx_off, sreg_off, tcc_ptr_off;
        bool is_struct_ops = flags & BPF_TRAMP_F_INDIRECT;
        void *orig_call = func_addr;
@@ -1460,9 +1460,6 @@ static int __arch_prepare_bpf_trampoline(struct jit_ctx *ctx, struct bpf_tramp_i
        struct bpf_tramp_links *fmod_ret = &tlinks[BPF_TRAMP_MODIFY_RETURN];
        u32 **branches = NULL;
 
-       if (flags & (BPF_TRAMP_F_ORIG_STACK | BPF_TRAMP_F_SHARE_IPMODIFY))
-               return -ENOTSUPP;
-
        /*
         * FP + 8       [ RA to parent func ] return address to parent
         *                    function
@@ -1496,10 +1493,8 @@ static int __arch_prepare_bpf_trampoline(struct jit_ctx *ctx, struct bpf_tramp_i
        if (flags & (BPF_TRAMP_F_ORIG_STACK | BPF_TRAMP_F_SHARE_IPMODIFY))
                return -ENOTSUPP;
 
-       stack_size = 0;
-
        /* Room of trampoline frame to store return address and frame pointer */
-       stack_size += 16;
+       stack_size = 16;
 
        save_ret = flags & (BPF_TRAMP_F_CALL_ORIG | BPF_TRAMP_F_RET_FENTRY_RET);
        if (save_ret)