[PATCH v2] powerpc/bpf: populate extable entries only during the last pass

Naveen N. Rao naveen.n.rao at linux.ibm.com
Wed Apr 26 00:36:09 AEST 2023


Hari Bathini wrote:
> Since commit 85e031154c7c ("powerpc/bpf: Perform complete extra passes
> to update addresses"), two additional passes are performed to avoid
> space and CPU time wastage on powerpc. But these extra passes led to
> WARN_ON_ONCE() hits in bpf_add_extable_entry() as extable entries are
> populated again, during the extra pass, without resetting the index.
> Fix it by resetting entry index before repopulating extable entries,
> if and when there is an additional pass.
> 
> Fixes: 85e031154c7c ("powerpc/bpf: Perform complete extra passes to update addresses")
> Cc: stable at vger.kernel.org
> Signed-off-by: Hari Bathini <hbathini at linux.ibm.com>
> ---
>  arch/powerpc/net/bpf_jit_comp.c | 2 ++
>  1 file changed, 2 insertions(+)

Reviewed-by: Naveen N. Rao <naveen.n.rao at linux.vnet.ibm.com>


- Naveen

> 
> diff --git a/arch/powerpc/net/bpf_jit_comp.c b/arch/powerpc/net/bpf_jit_comp.c
> index e93aefcfb83f..37043dfc1add 100644
> --- a/arch/powerpc/net/bpf_jit_comp.c
> +++ b/arch/powerpc/net/bpf_jit_comp.c
> @@ -101,6 +101,8 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *fp)
>  		bpf_hdr = jit_data->header;
>  		proglen = jit_data->proglen;
>  		extra_pass = true;
> +		/* During extra pass, ensure index is reset before repopulating extable entries */
> +		cgctx.exentry_idx = 0;
>  		goto skip_init_ctx;
>  	}
>  
> -- 
> 2.40.0
> 
> 


More information about the Linuxppc-dev mailing list