[PATCH v5 17/57] next/bnxt/tf_ulp: meter and mac_addr cache cleanup

Thomas Monjalon thomas at monjalon.net
Mon Nov 10 21:25:19 CET 2025


I take this patch as a simple and short example of what is done
at Broadcom for upstreaming the driver updates once a year.

- One patch includes multiple unrelated changes.
- A change described in the commit log (increase from 512)
  does not appear in the code.

We could say a lot more about this series.
In general, bnxt management looks like a mess.
Why not updating more regularly with more attention to quality?
Is it because some files are generated?
Can we improve by upstreaming the real sources of generated files?


29/10/2025 17:06, Manish Kurup:
> From: Jay Ding <jay.ding at broadcom.com>
> 
> 1. Thor doesn't support meter stats. Add null pointer check on
>    ulp_mapper_mtr_stats_hndl_del.
> 2. Increased the number of mac_addr_cache from 512 to 2048.
>    Changed the data type in an error message.
> 
> Signed-off-by: Jay Ding <jay.ding at broadcom.com>
> Reviewed-by: Shuanglin Wang <shuanglin.wang at broadcom.com>
> Reviewed-by: Peter Spreadborough <peter.spreadborough at broadcom.com>
> ---
>  drivers/net/bnxt/tf_ulp/bnxt_ulp_meter.c | 10 ++++++++++
>  drivers/net/bnxt/tf_ulp/ulp_gen_hash.c   |  2 +-
>  2 files changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/bnxt/tf_ulp/bnxt_ulp_meter.c b/drivers/net/bnxt/tf_ulp/bnxt_ulp_meter.c
> index bc48e35c00..7f6a84e699 100644
> --- a/drivers/net/bnxt/tf_ulp/bnxt_ulp_meter.c
> +++ b/drivers/net/bnxt/tf_ulp/bnxt_ulp_meter.c
> @@ -598,6 +598,16 @@ bnxt_flow_mtr_destroy(struct rte_eth_dev *dev,
>  	if (ret)
>  		goto parse_error;
>  
> +	oper = ulp_mapper_data_oper_get(ulp_ctx);
> +	if (!oper)
> +		goto parse_error;
> +
> +	if (oper->ulp_mapper_mtr_stats_hndl_del) {
> +		ret = oper->ulp_mapper_mtr_stats_hndl_del(mtr_id);
> +		if (ret)
> +			goto parse_error;
> +	}
> +
>  	BNXT_DRV_DBG(DEBUG, "Bnxt flow meter %d is deleted\n", mtr_id);
>  
>  	return 0;
> diff --git a/drivers/net/bnxt/tf_ulp/ulp_gen_hash.c b/drivers/net/bnxt/tf_ulp/ulp_gen_hash.c
> index e8cb1a3784..74cdd5c1da 100644
> --- a/drivers/net/bnxt/tf_ulp/ulp_gen_hash.c
> +++ b/drivers/net/bnxt/tf_ulp/ulp_gen_hash.c
> @@ -33,7 +33,7 @@ int32_t ulp_bit_alloc_list_alloc(struct bit_alloc_list *blist,
>  		return 0;
>  	}
>  	jdx = (uint32_t)(bsize_64 * ULP_INDEX_BITMAP_SIZE);
> -	BNXT_DRV_DBG(ERR, "bit allocator is full reached max:%x\n", jdx);
> +	BNXT_DRV_DBG(ERR, "bit allocator is full reached max:%d\n", jdx);
>  	return -1;
>  }






More information about the dev mailing list