Re: [PATCH v2 1/2] powerpc64/bpf: Fix build break in bpf_jit_emit_func_call_rel()

Hari Bathini <[email protected]> Thu, 30 Jul 2026 18:36:45 +0530
Newsgroups org.ozlabs.lists.linuxppc-dev,org.kernel.vger.bpf,org.kernel.vger.linux-kernel
Message-ID <[email protected]>

On 30/07/26 11:16 am, Saket Kumar Bhaskar wrote:
> From: Madhavan Srinivasan <[email protected]>
> 
> With CONFIG_PPC_KERNEL_PCREL enabled, build breaks with below error:
> 
>    CC      mm/dmapool.o
>    CC      fs/readdir.o
> arch/powerpc/net/bpf_jit_comp64.c: In function 'bpf_jit_emit_func_call_rel':
> arch/powerpc/net/bpf_jit_comp64.c:475:13: error: unused variable 'ret' [-Werror=unused-variable]
>    475 |         int ret;
>        |             ^~~
> 
> Commit b55b6b9ad76c ("powerpc64/bpf: Add powerpc64 JIT support for timed may_goto")
> introduced "ret" at function scope, but it is only used within its
> respective conditional blocks. Same holds true for reladdr. Move both
> variable declarations to the scopes where they are actually used:
> "reladdr" to the CONFIG_PPC_KERNEL_PCREL block and "ret" to the non-PCREL
> else block.
> 

Reviewed-by: Hari Bathini <[email protected]>

> Fixes: b55b6b9ad76c ("powerpc64/bpf: Add powerpc64 JIT support for timed may_goto")
> Signed-off-by: Madhavan Srinivasan <[email protected]>
> Signed-off-by: Saket Kumar Bhaskar <[email protected]>
> ---
>   arch/powerpc/net/bpf_jit_comp64.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/powerpc/net/bpf_jit_comp64.c b/arch/powerpc/net/bpf_jit_comp64.c
> index dab106cae22b..fc9db691e820 100644
> --- a/arch/powerpc/net/bpf_jit_comp64.c
> +++ b/arch/powerpc/net/bpf_jit_comp64.c
> @@ -471,8 +471,6 @@ static int bpf_jit_emit_func_call(u32 *image, struct codegen_context *ctx, u64 f
>   int bpf_jit_emit_func_call_rel(u32 *image, u32 *fimage, struct codegen_context *ctx, u64 func)
>   {
>   	unsigned long func_addr = func ? ppc_function_entry((void *)func) : 0;
> -	long __maybe_unused reladdr;
> -	int ret;
>   
>   	/* bpf to bpf call, func is not known in the initial pass. Emit 5 nops as a placeholder */
>   	if (!func) {
> @@ -487,6 +485,8 @@ int bpf_jit_emit_func_call_rel(u32 *image, u32 *fimage, struct codegen_context *
>   	}
>   
>   #ifdef CONFIG_PPC_KERNEL_PCREL
> +	long reladdr;
> +
>   	reladdr = func_addr - local_paca->kernelbase;
>   
>   	/*
> @@ -525,7 +525,7 @@ int bpf_jit_emit_func_call_rel(u32 *image, u32 *fimage, struct codegen_context *
>   	EMIT(PPC_RAW_BCTRL());
>   #else
>   	if (core_kernel_text(func_addr)) {
> -		ret = bpf_jit_emit_func_call(image, ctx, func_addr, _R12);
> +		int ret = bpf_jit_emit_func_call(image, ctx, func_addr, _R12);
>   		if (ret)
>   			return ret;
>   	} else {