summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
diff options
context:
space:
mode:
authorMark Bloch <mbloch@nvidia.com>2022-03-01 16:45:41 +0000
committerSaeed Mahameed <saeedm@nvidia.com>2022-05-09 22:54:01 -0700
commit4202ea95a6b64f6d773af9f901c74197a6431fa8 (patch)
tree077d5c6199fe5c7ebdb725012633a6335bb1bc1a /drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
parent8a6e75e5f57e9ac82268d9bfca3403598d9d0292 (diff)
net/mlx5: Lag, move E-Switch prerequisite check into lag code
There is no need to expose E-Switch function for something that can be checked with already present API inside lag code. Signed-off-by: Mark Bloch <mbloch@nvidia.com> Reviewed-by: Maor Gottlieb <maorg@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c')
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
index fe34cce77d07..1de843d2f248 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
@@ -457,12 +457,19 @@ static int mlx5_deactivate_lag(struct mlx5_lag *ldev)
static bool mlx5_lag_check_prereq(struct mlx5_lag *ldev)
{
+#ifdef CONFIG_MLX5_ESWITCH
+ u8 mode;
+#endif
+
if (!ldev->pf[MLX5_LAG_P1].dev || !ldev->pf[MLX5_LAG_P2].dev)
return false;
#ifdef CONFIG_MLX5_ESWITCH
- return mlx5_esw_lag_prereq(ldev->pf[MLX5_LAG_P1].dev,
- ldev->pf[MLX5_LAG_P2].dev);
+ mode = mlx5_eswitch_mode(ldev->pf[MLX5_LAG_P1].dev);
+
+ return (mode == MLX5_ESWITCH_NONE || mode == MLX5_ESWITCH_OFFLOADS) &&
+ (mlx5_eswitch_mode(ldev->pf[MLX5_LAG_P1].dev) ==
+ mlx5_eswitch_mode(ldev->pf[MLX5_LAG_P2].dev));
#else
return (!mlx5_sriov_is_enabled(ldev->pf[MLX5_LAG_P1].dev) &&
!mlx5_sriov_is_enabled(ldev->pf[MLX5_LAG_P2].dev));