Hi, > -----Original Message----- > From: Suanming Mou <suanmi...@mellanox.com> > Sent: Friday, May 15, 2020 11:36 AM > To: Matan Azrad <ma...@mellanox.com>; Shahaf Shuler > <shah...@mellanox.com>; Slava Ovsiienko <viachesl...@mellanox.com> > Cc: dev@dpdk.org; Raslan Darawsheh <rasl...@mellanox.com> > Subject: [PATCH] net/mlx5: fix shared counter search with nested index > > Currently, the shared counter search uses the wrong nested index which > is used by the pool index. The incorrect nested index using causes the > search go to incorrect counter pool is not existed. > > Add the counter index to fix the incorrect nested use case. > > Fixes: 4001d7ad26d4 ("net/mlx5: change Direct Verbs counter to indexed") > > Signed-off-by: Suanming Mou <suanmi...@mellanox.com> > Acked-by: Viacheslav Ovsiienko <viachesl...@mellanox.com> > --- > drivers/net/mlx5/mlx5_flow_dv.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/mlx5/mlx5_flow_dv.c > b/drivers/net/mlx5/mlx5_flow_dv.c > index 71da5fb..deb4469 100644 > --- a/drivers/net/mlx5/mlx5_flow_dv.c > +++ b/drivers/net/mlx5/mlx5_flow_dv.c > @@ -4467,15 +4467,15 @@ struct field_modify_info modify_tcp[] = { > flow_dv_counter_shared_search(struct mlx5_pools_container *cont, > uint32_t id, > struct mlx5_flow_counter_pool **ppool) > { > - static struct mlx5_flow_counter_ext *cnt; > + struct mlx5_flow_counter_ext *cnt; > struct mlx5_flow_counter_pool *pool; > - uint32_t i; > + uint32_t i, j; > uint32_t n_valid = rte_atomic16_read(&cont->n_valid); > > for (i = 0; i < n_valid; i++) { > pool = cont->pools[i]; > - for (i = 0; i < MLX5_COUNTERS_PER_POOL; ++i) { > - cnt = MLX5_GET_POOL_CNT_EXT(pool, i); > + for (j = 0; j < MLX5_COUNTERS_PER_POOL; ++j) { > + cnt = MLX5_GET_POOL_CNT_EXT(pool, j); > if (cnt->ref_cnt && cnt->shared && cnt->id == id) { > if (ppool) > *ppool = cont->pools[i]; > -- > 1.8.3.1
Title changed to: net/mlx5: fix shared counter lookup Patch applied to next-net-mlx, Kindest regards, Raslan Darawsheh