From 5f09e80cf8b248348cc635e518dfcab3126f1ca1 Mon Sep 17 00:00:00 2001 From: Moti Haimovsky Date: Thu, 3 Jan 2019 15:06:36 +0000 Subject: [PATCH] net/mlx5: fix shared counter allocation logic This commit fixes the logic for searching and allocating a shared counter in mlx5_flow_verbs. Now only the shared counters in the counters list are checked for a match and not all the counters as before. Fixes: 84c406e74524 ("net/mlx5: add flow translate function") Cc: stable@dpdk.org Signed-off-by: Moti Haimovsky Acked-by: Shahaf Shuler --- drivers/net/mlx5/mlx5_flow_verbs.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow_verbs.c b/drivers/net/mlx5/mlx5_flow_verbs.c index 81ec59d78c..409e1cd0c2 100644 --- a/drivers/net/mlx5/mlx5_flow_verbs.c +++ b/drivers/net/mlx5/mlx5_flow_verbs.c @@ -121,13 +121,13 @@ flow_verbs_counter_new(struct rte_eth_dev *dev, uint32_t shared, uint32_t id) struct mlx5_flow_counter *cnt; int ret; - LIST_FOREACH(cnt, &priv->flow_counters, next) { - if (!cnt->shared || cnt->shared != shared) - continue; - if (cnt->id != id) - continue; - cnt->ref_cnt++; - return cnt; + if (shared) { + LIST_FOREACH(cnt, &priv->flow_counters, next) { + if (cnt->shared && cnt->id == id) { + cnt->ref_cnt++; + return cnt; + } + } } cnt = rte_calloc(__func__, 1, sizeof(*cnt), 0); if (!cnt) { -- 2.20.1