diff options
Diffstat (limited to 'queue-6.8/net-mlx5-lag-restore-buckets-number-to-default-after.patch')
-rw-r--r-- | queue-6.8/net-mlx5-lag-restore-buckets-number-to-default-after.patch | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/queue-6.8/net-mlx5-lag-restore-buckets-number-to-default-after.patch b/queue-6.8/net-mlx5-lag-restore-buckets-number-to-default-after.patch new file mode 100644 index 0000000000..0c11faca34 --- /dev/null +++ b/queue-6.8/net-mlx5-lag-restore-buckets-number-to-default-after.patch @@ -0,0 +1,49 @@ +From 190cccac507d4919a1281f7e1dce1bb884f87c7b Mon Sep 17 00:00:00 2001 +From: Sasha Levin <sashal@kernel.org> +Date: Thu, 11 Apr 2024 14:54:39 +0300 +Subject: net/mlx5: Lag, restore buckets number to default after hash LAG + deactivation + +From: Shay Drory <shayd@nvidia.com> + +[ Upstream commit 37cc10da3a50e6d0cb9808a90b7da9b4868794dd ] + +The cited patch introduces the concept of buckets in LAG in hash mode. +However, the patch doesn't clear the number of buckets in the LAG +deactivation. This results in using the wrong number of buckets in +case user create a hash mode LAG and afterwards create a non-hash +mode LAG. + +Hence, restore buckets number to default after hash mode LAG +deactivation. + +Fixes: 352899f384d4 ("net/mlx5: Lag, use buckets in hash mode") +Signed-off-by: Shay Drory <shayd@nvidia.com> +Reviewed-by: Maor Gottlieb <maorg@nvidia.com> +Signed-off-by: Tariq Toukan <tariqt@nvidia.com> +Link: https://lore.kernel.org/r/20240411115444.374475-2-tariqt@nvidia.com +Signed-off-by: Jakub Kicinski <kuba@kernel.org> +Signed-off-by: Sasha Levin <sashal@kernel.org> +--- + drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c +index d14459e5c04fc..69d482f7c5a29 100644 +--- a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c ++++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c +@@ -703,8 +703,10 @@ int mlx5_deactivate_lag(struct mlx5_lag *ldev) + return err; + } + +- if (test_bit(MLX5_LAG_MODE_FLAG_HASH_BASED, &flags)) ++ if (test_bit(MLX5_LAG_MODE_FLAG_HASH_BASED, &flags)) { + mlx5_lag_port_sel_destroy(ldev); ++ ldev->buckets = 1; ++ } + if (mlx5_lag_has_drop_rule(ldev)) + mlx5_lag_drop_rule_cleanup(ldev); + +-- +2.43.0 + |