From a6b57ff48708e659ad35aed499c32805de85d3cd Mon Sep 17 00:00:00 2001 From: Bing Zhao Date: Tue, 28 Sep 2021 07:08:51 +0300 Subject: [PATCH] net/mlx5: fix flow tables double release In the function mlx5_alloc_shared_dr(), there are various reasons to result in a failure and error clean up process. While in the caller of mlx5_dev_spawn(), once there is a error occurring after the mlx5_alloc_shared_dr(), the mlx5_os_free_shared_dr() is called to release all the resources. To prevent a double release, the pointers of the resources should be checked before the releasing and set to NULL after done. In the mlx5_free_table_hash_list(), after the releasing, the pointer was missed to set to NULL and a double release may cause a crash. By setting the tables pointer to NULL as done for other resources, the double release and crash could be solved. Fixes: 54534725d2f3 ("net/mlx5: fix flow table hash list conversion") Cc: stable@dpdk.org Signed-off-by: Bing Zhao Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index aa428366b3..45ccfe2784 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -1372,6 +1372,7 @@ mlx5_free_table_hash_list(struct mlx5_priv *priv) if (!sh->flow_tbls) return; mlx5_hlist_destroy(sh->flow_tbls); + sh->flow_tbls = NULL; } /** -- 2.20.1