> diff --git a/arch/powerpc/net/bpf_jit.h b/arch/powerpc/net/bpf_jit.h
> --- a/arch/powerpc/net/bpf_jit.h
> +++ b/arch/powerpc/net/bpf_jit.h
> @@ -217,7 +217,8 @@ static inline void bpf_clear_seen_register(struct 
> codegen_context *ctx, int i)
>  void bpf_jit_build_epilogue(u32 *image, u32 *fimage, struct codegen_context 
> *ctx);
>  void bpf_jit_build_fentry_stubs(u32 *image, u32 *fimage, struct 
> codegen_context *ctx);
>  void bpf_jit_realloc_regs(struct codegen_context *ctx);
> -int bpf_jit_emit_exit_insn(u32 *image, struct codegen_context *ctx, int 
> tmp_reg, long exit_addr);
> +int bpf_jit_emit_exit_insn(u32 *image, u32 *fimage, struct codegen_context 
> *ctx, int tmp_reg,
> +                                                                             
> long exit_addr);
                                                        ^^^^

Does this prototype change break the build for 32-bit configurations?

The function definition in bpf_jit_comp.c and the caller in
bpf_jit_comp64.c were both updated to the new 5-argument signature, but
the caller in arch/powerpc/net/bpf_jit_comp32.c was not updated:

arch/powerpc/net/bpf_jit_comp32.c:bpf_jit_build_body() {
    ...
    case BPF_JMP | BPF_EXIT:
        if (i != flen - 1) {
            ret = bpf_jit_emit_exit_insn(image, ctx, _R0, exit_addr);
            if (ret)
                return ret;
    ...
}

This still passes only 4 arguments to a function now requiring 5, which
will result in a compilation failure with 'too few arguments to function'
when CONFIG_PPC32 is enabled.

> diff --git a/arch/powerpc/net/bpf_jit_comp.c b/arch/powerpc/net/bpf_jit_comp.c
> --- a/arch/powerpc/net/bpf_jit_comp.c
> +++ b/arch/powerpc/net/bpf_jit_comp.c

[ ... ]

> diff --git a/arch/powerpc/net/bpf_jit_comp64.c 
> b/arch/powerpc/net/bpf_jit_comp64.c
> --- a/arch/powerpc/net/bpf_jit_comp64.c
> +++ b/arch/powerpc/net/bpf_jit_comp64.c
> @@ -1726,7 +1726,8 @@
>                        * we'll just fall through to the epilogue.
>                        */
>                       if (i != flen - 1) {
> -                             ret = bpf_jit_emit_exit_insn(image, ctx, 
> tmp1_reg, exit_addr);
> +                             ret = bpf_jit_emit_exit_insn(image, fimage, ctx,
> +                                                             tmp1_reg, 
> exit_addr);
>                               if (ret)
>                                       return ret;
>                       }


---
AI reviewed your patch. Please fix the bug or email reply why it's not a bug.
See: https://github.com/kernel-patches/vmtest/blob/master/ci/claude/README.md

CI run summary: https://github.com/kernel-patches/bpf/actions/runs/27344891421

Reply via email to