net/mlx5e: Fix error flow in representor failing to add vport rx rule
[ Upstream commitpull/1175/head0a6b069cc6] On representor init rx error flow the flow steering pointer is being released so mlx5e_attach_netdev() doesn't have a valid fs pointer in its error flow. Make sure the pointer is nullified when released and add a check in mlx5e_fs_cleanup() to verify fs is not null as representor cleanup callback would be called anyway. Fixes:af8bbf7300("net/mlx5e: Convert mlx5e_flow_steering member of mlx5e_priv to pointer") Signed-off-by: Roi Dayan <roid@nvidia.com> Reviewed-by: Maor Dickman <maord@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
parent
2ca9f9b837
commit
62fea2c2e4
|
|
@ -1471,6 +1471,8 @@ err:
|
|||
|
||||
void mlx5e_fs_cleanup(struct mlx5e_flow_steering *fs)
|
||||
{
|
||||
if (!fs)
|
||||
return;
|
||||
mlx5e_fs_ethtool_free(fs);
|
||||
mlx5e_fs_tc_free(fs);
|
||||
mlx5e_fs_vlan_free(fs);
|
||||
|
|
|
|||
|
|
@ -5201,6 +5201,7 @@ static void mlx5e_nic_cleanup(struct mlx5e_priv *priv)
|
|||
mlx5e_ktls_cleanup(priv);
|
||||
mlx5e_ipsec_cleanup(priv);
|
||||
mlx5e_fs_cleanup(priv->fs);
|
||||
priv->fs = NULL;
|
||||
}
|
||||
|
||||
static int mlx5e_init_nic_rx(struct mlx5e_priv *priv)
|
||||
|
|
|
|||
|
|
@ -783,6 +783,7 @@ static void mlx5e_cleanup_rep(struct mlx5e_priv *priv)
|
|||
{
|
||||
mlx5e_fs_cleanup(priv->fs);
|
||||
mlx5e_ipsec_cleanup(priv);
|
||||
priv->fs = NULL;
|
||||
}
|
||||
|
||||
static int mlx5e_create_rep_ttc_table(struct mlx5e_priv *priv)
|
||||
|
|
@ -949,6 +950,7 @@ err_close_drop_rq:
|
|||
priv->rx_res = NULL;
|
||||
err_free_fs:
|
||||
mlx5e_fs_cleanup(priv->fs);
|
||||
priv->fs = NULL;
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue