aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Mi <cmi@nvidia.com>2022-11-29 01:30:06 -0800
committerJakub Kicinski <kuba@kernel.org>2022-11-29 08:19:59 -0800
commit0e682f04b4b59eac0b0a030251513589c4607458 (patch)
tree8646bcc0aa9a171c09a75f996b82f6ec29e61122
parentdda3bbbb26c823cd54d5bf211df7db12147c9392 (diff)
downloadv9fs-0e682f04b4b59eac0b0a030251513589c4607458.tar.gz
net/mlx5: Lag, Fix for loop when checking lag
The cited commit adds a for loop to check if each port supports lag or not. But dev is not initialized correctly. Fix it by initializing dev for each iteration. Fixes: e87c6a832f88 ("net/mlx5: E-switch, Fix duplicate lag creation") Signed-off-by: Chris Mi <cmi@nvidia.com> Reported-by: Jacob Keller <jacob.e.keller@intel.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com> Link: https://lore.kernel.org/r/20221129093006.378840-2-saeed@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c6
1 files changed, 4 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 4070dc1d17cb8f..32c3e0a649a753 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
@@ -700,11 +700,13 @@ static bool mlx5_lag_check_prereq(struct mlx5_lag *ldev)
return false;
#ifdef CONFIG_MLX5_ESWITCH
- dev = ldev->pf[MLX5_LAG_P1].dev;
- for (i = 0; i < ldev->ports; i++)
+ for (i = 0; i < ldev->ports; i++) {
+ dev = ldev->pf[i].dev;
if (mlx5_eswitch_num_vfs(dev->priv.eswitch) && !is_mdev_switchdev_mode(dev))
return false;
+ }
+ dev = ldev->pf[MLX5_LAG_P1].dev;
mode = mlx5_eswitch_mode(dev);
for (i = 0; i < ldev->ports; i++)
if (mlx5_eswitch_mode(ldev->pf[i].dev) != mode)