Skip to content

Commit 0a6b069

Browse files
roidayanSaeed Mahameed
authored andcommitted
net/mlx5e: Fix error flow in representor failing to add vport rx rule
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: af8bbf7 ("net/mlx5e: Convert mlx5e_flow_steering member of mlx5e_priv to pointer") Signed-off-by: Roi Dayan <[email protected]> Reviewed-by: Maor Dickman <[email protected]> Signed-off-by: Saeed Mahameed <[email protected]>
1 parent 4fbef0f commit 0a6b069

File tree

3 files changed

+5
-0
lines changed

3 files changed

+5
-0
lines changed

drivers/net/ethernet/mellanox/mlx5/core/en_fs.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1490,6 +1490,8 @@ struct mlx5e_flow_steering *mlx5e_fs_init(const struct mlx5e_profile *profile,
14901490

14911491
void mlx5e_fs_cleanup(struct mlx5e_flow_steering *fs)
14921492
{
1493+
if (!fs)
1494+
return;
14931495
debugfs_remove_recursive(fs->dfs_root);
14941496
mlx5e_fs_ethtool_free(fs);
14951497
mlx5e_fs_tc_free(fs);

drivers/net/ethernet/mellanox/mlx5/core/en_main.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5270,6 +5270,7 @@ static void mlx5e_nic_cleanup(struct mlx5e_priv *priv)
52705270
mlx5e_health_destroy_reporters(priv);
52715271
mlx5e_ktls_cleanup(priv);
52725272
mlx5e_fs_cleanup(priv->fs);
5273+
priv->fs = NULL;
52735274
}
52745275

52755276
static int mlx5e_init_nic_rx(struct mlx5e_priv *priv)

drivers/net/ethernet/mellanox/mlx5/core/en_rep.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -828,6 +828,7 @@ static int mlx5e_init_ul_rep(struct mlx5_core_dev *mdev,
828828
static void mlx5e_cleanup_rep(struct mlx5e_priv *priv)
829829
{
830830
mlx5e_fs_cleanup(priv->fs);
831+
priv->fs = NULL;
831832
}
832833

833834
static int mlx5e_create_rep_ttc_table(struct mlx5e_priv *priv)
@@ -994,6 +995,7 @@ static int mlx5e_init_rep_rx(struct mlx5e_priv *priv)
994995
priv->rx_res = NULL;
995996
err_free_fs:
996997
mlx5e_fs_cleanup(priv->fs);
998+
priv->fs = NULL;
997999
return err;
9981000
}
9991001

0 commit comments

Comments
 (0)