When creating the drop action Devx object, the global counter set is also used as in the regular or hairpin queue creation.
The drop action should be destroyed before the global counter set release procedure. Or else, the counter set object is still referenced and cannot be released successfully. This would cause the counter set resources to be exhausted after starting and stopping the ports repeatedly. Fixes: 65b3cd0dc39b ("net/mlx5: create global drop action") Cc: suanmi...@nvidia.com Cc: sta...@dpdk.org Signed-off-by: Bing Zhao <bi...@nvidia.com> Acked-by: Suanming Mou <suanmi...@nvidia.com> --- drivers/net/mlx5/mlx5.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index 39dc1830d1..984eeb3709 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -2381,12 +2381,12 @@ mlx5_dev_close(struct rte_eth_dev *dev) priv->txqs = NULL; } mlx5_proc_priv_uninit(dev); + if (priv->drop_queue.hrxq) + mlx5_drop_action_destroy(dev); if (priv->q_counters) { mlx5_devx_cmd_destroy(priv->q_counters); priv->q_counters = NULL; } - if (priv->drop_queue.hrxq) - mlx5_drop_action_destroy(dev); if (priv->mreg_cp_tbl) mlx5_hlist_destroy(priv->mreg_cp_tbl); mlx5_mprq_free_mp(dev); -- 2.34.1