When there is not enough memory, counter pool creation fails. As a result, the pool is being destroyed. Since not all pointers were initialized during creation, Need to check for null pointer in destruction.
Fixes: 13ea6bdcc7ee ("net/mlx5: support counters in cross port shared mode") Cc: sta...@dpdk.org Signed-off-by: Maayan Kashani <mkash...@nvidia.com> Acked-by: Bing Zhao <bi...@nvidia.com> --- drivers/net/mlx5/mlx5_hws_cnt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/mlx5/mlx5_hws_cnt.c b/drivers/net/mlx5/mlx5_hws_cnt.c index 83db242bf90..fce7a7e815f 100644 --- a/drivers/net/mlx5/mlx5_hws_cnt.c +++ b/drivers/net/mlx5/mlx5_hws_cnt.c @@ -810,7 +810,7 @@ mlx5_hws_cnt_pool_destroy(struct mlx5_dev_ctx_shared *sh, LIST_REMOVE(cpool, next); rte_spinlock_unlock(&sh->cpool_lock); if (cpool->cfg.host_cpool == NULL) { - if (--sh->cnt_svc->refcnt == 0) + if (sh->cnt_svc && --sh->cnt_svc->refcnt == 0) mlx5_hws_cnt_svc_deinit(sh); } mlx5_hws_cnt_pool_action_destroy(cpool); -- 2.21.0