Skip to content

Commit 3296698

Browse files
shayshyiPaolo Abeni
authored andcommitted
net/mlx5: Lag, Check shared fdb before creating MultiPort E-Switch
Currently, MultiPort E-Switch is requesting to create a LAG with shared FDB without checking the LAG is supporting shared FDB. Add the check. Fixes: a32327a ("net/mlx5: Lag, Control MultiPort E-Switch single FDB mode") Signed-off-by: Shay Drory <[email protected]> Reviewed-by: Mark Bloch <[email protected]> Signed-off-by: Tariq Toukan <[email protected]> Reviewed-by: Michal Swiatkowski <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Paolo Abeni <[email protected]>
1 parent 32d2724 commit 3296698

File tree

3 files changed

+5
-3
lines changed

3 files changed

+5
-3
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -951,7 +951,7 @@ void mlx5_disable_lag(struct mlx5_lag *ldev)
951951
mlx5_eswitch_reload_ib_reps(ldev->pf[i].dev->priv.eswitch);
952952
}
953953

954-
static bool mlx5_shared_fdb_supported(struct mlx5_lag *ldev)
954+
bool mlx5_lag_shared_fdb_supported(struct mlx5_lag *ldev)
955955
{
956956
int idx = mlx5_lag_get_dev_index_by_seq(ldev, MLX5_LAG_P1);
957957
struct mlx5_core_dev *dev;
@@ -1038,7 +1038,7 @@ static void mlx5_do_bond(struct mlx5_lag *ldev)
10381038
}
10391039

10401040
if (do_bond && !__mlx5_lag_is_active(ldev)) {
1041-
bool shared_fdb = mlx5_shared_fdb_supported(ldev);
1041+
bool shared_fdb = mlx5_lag_shared_fdb_supported(ldev);
10421042

10431043
roce_lag = mlx5_lag_is_roce_lag(ldev);
10441044

drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ mlx5_lag_is_ready(struct mlx5_lag *ldev)
9292
return test_bit(MLX5_LAG_FLAG_NDEVS_READY, &ldev->state_flags);
9393
}
9494

95+
bool mlx5_lag_shared_fdb_supported(struct mlx5_lag *ldev);
9596
bool mlx5_lag_check_prereq(struct mlx5_lag *ldev);
9697
void mlx5_modify_lag(struct mlx5_lag *ldev,
9798
struct lag_tracker *tracker);

drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,8 @@ static int enable_mpesw(struct mlx5_lag *ldev)
8383
if (mlx5_eswitch_mode(dev0) != MLX5_ESWITCH_OFFLOADS ||
8484
!MLX5_CAP_PORT_SELECTION(dev0, port_select_flow_table) ||
8585
!MLX5_CAP_GEN(dev0, create_lag_when_not_master_up) ||
86-
!mlx5_lag_check_prereq(ldev))
86+
!mlx5_lag_check_prereq(ldev) ||
87+
!mlx5_lag_shared_fdb_supported(ldev))
8788
return -EOPNOTSUPP;
8889

8990
err = mlx5_mpesw_metadata_set(ldev);

0 commit comments

Comments
 (0)