On Wed, 21 May 2025 12:37:27 -0700
Stephen Hemminger <step...@networkplumber.org> wrote:

> This was found as error when compiling with LTO.
> The function allocates new data with rte_zmalloc and then
> stores pointer in the pointer-to-pointer passed as argument.
> In the unwind case, it would call rte_free() with wrong one.
> 
> Fixes: 80317ff6adfd ("net/bnxt/tf_core: support Thor2")
> 
> Signed-off-by: Stephen Hemminger <step...@networkplumber.org>
> ---
>  drivers/net/bnxt/tf_core/v3/tfo.c | 8 +++-----
>  1 file changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/net/bnxt/tf_core/v3/tfo.c 
> b/drivers/net/bnxt/tf_core/v3/tfo.c
> index bee813ebf6..c888dd1e4e 100644
> --- a/drivers/net/bnxt/tf_core/v3/tfo.c
> +++ b/drivers/net/bnxt/tf_core/v3/tfo.c
> @@ -74,9 +74,7 @@ void tfo_open(void **tfo, bool is_pf)
>       rc = cfa_bld_mpc_bind(CFA_P70, &tfco->mpc_info);
>       if (rc) {
>               PMD_DRV_LOG_LINE(ERR, "MPC bind failed");
> -             rte_free(tfco);
> -             *tfo = NULL;
> -             return;
> +             goto cleanup;
>       }
>       if (is_pf) {
>               /* Allocate TIM */
> @@ -104,8 +102,8 @@ void tfo_open(void **tfo, bool is_pf)
>       return;
>  
>   cleanup:
> -     if (tfco != NULL)
> -             rte_free(tfo);
> +     rte_free(tfco);
> +     *tfo = NULL;
>  }
>  
>  void tfo_close(void **tfo)

Ping. This is a bug fix which seems to have gotten no response.

Reply via email to