[dpdk-dev] [PATCH v2 2/2] net/mlx5: fix resource leak when releasing a drop action

wangyunjian wangyunjian at huawei.com
Fri Sep 23 11:31:51 CEST 2022


Friendly ping.

> -----Original Message-----
> From: wangyunjian
> Sent: Tuesday, August 23, 2022 2:46 PM
> To: dev at dpdk.org
> Cc: matan at nvidia.com; rasland at nvidia.com; viacheslavo at nvidia.com;
> dkozlyuk at nvidia.com; Huangshaozhang <huangshaozhang at huawei.com>;
> wangyunjian <wangyunjian at huawei.com>; stable at dpdk.org
> Subject: [dpdk-dev] [PATCH v2 2/2] net/mlx5: fix resource leak when releasing a
> drop action
> 
> Currently, the resources for hrxq->action are allocated in
> mlx5_devx_hrxq_new(). But it was not being freed when the drop action was
> released in mlx5_devx_drop_action_destroy().
> So, fix is to free the resources in mlx5_devx_tir_destroy().
> 
> Fixes: bc5bee028ebc ("net/mlx5: create drop queue using DevX")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Yunjian Wang <wangyunjian at huawei.com>
> ---
>  drivers/net/mlx5/mlx5_devx.c | 7 +++++++  drivers/net/mlx5/mlx5_rxq.c  |
> 6 ------
>  2 files changed, 7 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/net/mlx5/mlx5_devx.c b/drivers/net/mlx5/mlx5_devx.c index
> 6886ae1f22..09c8856f05 100644
> --- a/drivers/net/mlx5/mlx5_devx.c
> +++ b/drivers/net/mlx5/mlx5_devx.c
> @@ -907,6 +907,13 @@ mlx5_devx_hrxq_new(struct rte_eth_dev *dev,
> struct mlx5_hrxq *hrxq,  static void  mlx5_devx_tir_destroy(struct
> mlx5_hrxq *hrxq)  {
> +#if defined(HAVE_IBV_FLOW_DV_SUPPORT)
> || !defined(HAVE_INFINIBAND_VERBS_H)
> +	if (hrxq->hws_flags)
> +		mlx5dr_action_destroy(hrxq->action);
> +	else
> +		mlx5_flow_os_destroy_flow_action(hrxq->action);
> +	hrxq->action = NULL;
> +#endif
>  	claim_zero(mlx5_devx_cmd_destroy(hrxq->tir));
>  }
> 
> diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c index
> eaf23d0df4..e518fe9bfd 100644
> --- a/drivers/net/mlx5/mlx5_rxq.c
> +++ b/drivers/net/mlx5/mlx5_rxq.c
> @@ -2861,12 +2861,6 @@ __mlx5_hrxq_remove(struct rte_eth_dev *dev,
> struct mlx5_hrxq *hrxq)  {
>  	struct mlx5_priv *priv = dev->data->dev_private;
> 
> -#ifdef HAVE_IBV_FLOW_DV_SUPPORT
> -	if (hrxq->hws_flags)
> -		mlx5dr_action_destroy(hrxq->action);
> -	else
> -		mlx5_glue->destroy_flow_action(hrxq->action);
> -#endif
>  	priv->obj_ops.hrxq_destroy(hrxq);
>  	if (!hrxq->standalone) {
>  		mlx5_ind_table_obj_release(dev, hrxq->ind_table,
> --
> 2.27.0



More information about the dev mailing list