[SRU][G][PATCH 1/1] net/mlx5e: Add missing capability check for uplink follow
frank.heimes at canonical.com
frank.heimes at canonical.com
Fri Mar 26 16:21:02 UTC 2021
From: Alexander Schmidt <alexschm at de.ibm.com>
BugLink: https://bugs.launchpad.net/bugs/1921104
Expose firmware indication that it supports setting eswitch uplink state
to follow (follow the physical link). Condition setting the eswitch
uplink admin-state with this capability bit. Older FW may not support
the uplink state setting.
Fixes: 7d0314b11cdd ("net/mlx5e: Modify uplink state on interface up/down")
Signed-off-by: Aya Levin <ayal at nvidia.com>
Reviewed-by: Moshe Shemesh <moshe at nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm at nvidia.com>
Reported-and-Tested-by: Alexander Schmidt <alexschm at de.ibm.com>
(backported from commit 9c9be85f6b59d80efe4705109c0396df18d4e11d)
Signed-off-by: Frank Heimes <frank.heimes at canonical.com>
---
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 3 ++-
include/linux/mlx5/mlx5_ifc.h | 4 +++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index 6da50845f614..8076051d2b95 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -3160,7 +3160,8 @@ static void mlx5e_modify_admin_state(struct mlx5_core_dev *mdev,
mlx5_set_port_admin_status(mdev, state);
- if (!MLX5_ESWITCH_MANAGER(mdev) || mlx5_eswitch_mode(esw) == MLX5_ESWITCH_OFFLOADS)
+ if (!MLX5_ESWITCH_MANAGER(mdev) || mlx5_eswitch_mode(esw) == MLX5_ESWITCH_OFFLOADS ||
+ !MLX5_CAP_GEN(mdev, uplink_follow))
return;
if (state == MLX5_PORT_UP)
diff --git a/include/linux/mlx5/mlx5_ifc.h b/include/linux/mlx5/mlx5_ifc.h
index 28de7b1b50a5..11f218a05e37 100644
--- a/include/linux/mlx5/mlx5_ifc.h
+++ b/include/linux/mlx5/mlx5_ifc.h
@@ -1217,7 +1217,9 @@ struct mlx5_ifc_cmd_hca_cap_bits {
u8 ece_support[0x1];
u8 reserved_at_a4[0x7];
u8 log_max_srq[0x5];
- u8 reserved_at_b0[0x10];
+ u8 reserved_at_b0[0x1];
+ u8 uplink_follow[0x1];
+ u8 reserved_at_b2[0xe];
u8 max_sgl_for_optimized_performance[0x8];
u8 log_max_cq_sz[0x8];
--
2.25.1
More information about the kernel-team
mailing list