net/mlx5: fix ASO CT object release
The ASO connection tracking structure is initialized once for sharing device context. Its release takes place in the close function which is called for each ethdev individually. i.e. when there is more than one ethdev under the same sharing device context, it will be destroyed when one of them is closed. If the other wants to use it later, it may cause it to crash. In addition, the creation of this structure is performed in the spawn function. If one of the creations of the objects following it fails, it is supposed to be destroyed but this does not happen. This patch moves its release to the sharing device context free function and thus solves both problems. Fixes:0af8a2298a
("net/mlx5: release connection tracking management") Fixes:ee9e5fad03
("net/mlx5: initialize connection tracking management") Cc: stable@dpdk.org Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com>
This commit is contained in:
parent
ad9d0c6395
commit
ce12974cce
@ -1321,6 +1321,8 @@ mlx5_free_shared_dev_ctx(struct mlx5_dev_ctx_shared *sh)
|
||||
* Only primary process handles async device events.
|
||||
**/
|
||||
mlx5_flow_counters_mng_close(sh);
|
||||
if (sh->ct_mng)
|
||||
mlx5_flow_aso_ct_mng_close(sh);
|
||||
if (sh->aso_age_mng) {
|
||||
mlx5_flow_aso_age_mng_close(sh);
|
||||
sh->aso_age_mng = NULL;
|
||||
@ -1594,8 +1596,6 @@ mlx5_dev_close(struct rte_eth_dev *dev)
|
||||
if (priv->mreg_cp_tbl)
|
||||
mlx5_hlist_destroy(priv->mreg_cp_tbl);
|
||||
mlx5_mprq_free_mp(dev);
|
||||
if (priv->sh->ct_mng)
|
||||
mlx5_flow_aso_ct_mng_close(priv->sh);
|
||||
mlx5_os_free_shared_dr(priv);
|
||||
if (priv->rss_conf.rss_key != NULL)
|
||||
mlx5_free(priv->rss_conf.rss_key);
|
||||
|
Loading…
Reference in New Issue
Block a user