Hi, > -----Original Message----- > From: dev <dev-boun...@dpdk.org> On Behalf Of Xiaoyu Min > Sent: Monday, December 16, 2019 11:28 AM > To: Ori Kam <or...@mellanox.com>; Matan Azrad <ma...@mellanox.com>; > Shahaf Shuler <shah...@mellanox.com>; Slava Ovsiienko > <viachesl...@mellanox.com> > Cc: dev@dpdk.org; sta...@dpdk.org; Zhike Wang <wangzh...@jd.com> > Subject: [dpdk-dev] [PATCH] net/mlx5: fix multiple flow table hash list > > The eth devices which share one ibv device only need one hash list of flow > table. > > Currently, flow table hash list is created per each eth device whatever > whether they share one ibv device or not. > > If the devices share one ibv device, the previously created hash list will > become dangle because the pointer point to (sh->flow_tbls) is overwritten > by the later created hast list. > > To fix this, just don't create hash list if it is already created. > > Fixes: 54534725d2f3 ("net/mlx5: fix flow table hash list conversion") > Cc: sta...@dpdk.org > > Reported-by: Zhike Wang <wangzh...@jd.com> > Signed-off-by: Xiaoyu Min <jack...@mellanox.com> > --- > drivers/net/mlx5/mlx5.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index > d84a6f91b4..50960c91ce 100644 > --- a/drivers/net/mlx5/mlx5.c > +++ b/drivers/net/mlx5/mlx5.c > @@ -868,8 +868,13 @@ mlx5_alloc_shared_dr(struct mlx5_priv *priv) { > struct mlx5_ibv_shared *sh = priv->sh; > char s[MLX5_HLIST_NAMESIZE]; > - int err = mlx5_alloc_table_hash_list(priv); > + int err = 0; > > + if (!sh->flow_tbls) > + err = mlx5_alloc_table_hash_list(priv); > + else > + DRV_LOG(DEBUG, "sh->flow_tbls[%p] already created, > reuse\n", > + (void *)sh->flow_tbls); > if (err) > return err; > /* Create tags hash list table. */ > -- > 2.24.0
Patch applied to next-net-mlx, Kindest regards, Raslan Darawsheh