net/mlx5: Fix LAG requirement when CONFIG_MLX5_ESWITCH is off
authorAviv Heller <avivh@mellanox.com>
Tue, 18 Dec 2018 17:03:27 +0000 (19:03 +0200)
committerSaeed Mahameed <saeedm@mellanox.com>
Thu, 20 Dec 2018 13:06:03 +0000 (05:06 -0800)
If CONFIG_MLX5_ESWITCH is not defined, test for SR-IOV being disabled,
instead of calling e-switch LAG prereq routine.

Since LAG with SRIOV is allowed only when switchdev mode is on.

Fixes: eff849b2c669 ("net/mlx5: Allow/disallow LAG according to pre-req only")
Signed-off-by: Aviv Heller <avivh@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/lag.c

index 5187dc7..3a6baed 100644 (file)
@@ -291,12 +291,15 @@ static int mlx5_deactivate_lag(struct mlx5_lag *ldev)
 
 static bool mlx5_lag_check_prereq(struct mlx5_lag *ldev)
 {
-       if (ldev->pf[0].dev &&
-           ldev->pf[1].dev &&
-           mlx5_esw_lag_prereq(ldev->pf[0].dev, ldev->pf[1].dev))
-               return true;
-       else
+       if (!ldev->pf[0].dev || !ldev->pf[1].dev)
                return false;
+
+#ifdef CONFIG_MLX5_ESWITCH
+       return mlx5_esw_lag_prereq(ldev->pf[0].dev, ldev->pf[1].dev);
+#else
+       return (!mlx5_sriov_is_enabled(ldev->pf[0].dev) &&
+               !mlx5_sriov_is_enabled(ldev->pf[1].dev));
+#endif
 }
 
 static void mlx5_lag_add_ib_devices(struct mlx5_lag *ldev)