summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorShay Drory <shayd@nvidia.com>2026-08-10 12:30:37 +0300
committerJakub Kicinski <kuba@kernel.org>2026-08-14 12:27:12 -0700
commit486e5419b7ec357da8f287efef7ccc1ebc1421e9 (patch)
tree8397ce2f0c32de481b4108a8af2143b1a06e75f9 /include
parent4cc4f59258a99f43713e7d9a5042c56350b4eeaf (diff)
downloadlinux-486e5419b7ec357da8f287efef7ccc1ebc1421e9.tar.gz
linux-486e5419b7ec357da8f287efef7ccc1ebc1421e9.zip
net/mlx5: SD, prefer sd_group_size from vport context
Newer FW reports the SD group size directly in the NIC vport context via the sd_group_size field, gated by the sd_group_size capability. Switch sd_init() to source the group size from there and fall back to the MPIR-based host_buses query only when the cap is absent. sd_group_size might return 1 in some FW configuration. Add explicit check to disable SD creation in this case. While here, rename host_buses to group_size throughout sd.c to follow the new name on capable FW. Signed-off-by: Shay Drory <shayd@nvidia.com> Reviewed-by: Moshe Shemesh <moshe@nvidia.com> Signed-off-by: Tariq Toukan <tariqt@nvidia.com> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/20260810093037.3138197-1-tariqt@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/mlx5/vport.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/mlx5/vport.h b/include/linux/mlx5/vport.h
index ee34d3ed335f..577168a4ca0c 100644
--- a/include/linux/mlx5/vport.h
+++ b/include/linux/mlx5/vport.h
@@ -78,7 +78,8 @@ int mlx5_query_nic_vport_mtu(struct mlx5_core_dev *mdev, u16 *mtu);
int mlx5_modify_nic_vport_mtu(struct mlx5_core_dev *mdev, u16 mtu);
int mlx5_query_nic_vport_system_image_guid(struct mlx5_core_dev *mdev,
u64 *system_image_guid);
-int mlx5_query_nic_vport_sd_group(struct mlx5_core_dev *mdev, u8 *sd_group);
+int mlx5_query_nic_vport_sd_group(struct mlx5_core_dev *mdev, u8 *sd_group,
+ u8 *sd_group_size);
int mlx5_query_nic_vport_node_guid(struct mlx5_core_dev *mdev,
u16 vport, bool other_vport, u64 *node_guid);
int mlx5_modify_nic_vport_node_guid(struct mlx5_core_dev *mdev,