On 10/09/2025 3:37, Li Tian wrote:
Because mlx5e_link_info and mlx5e_ext_link_info have holes
e.g. Azure mlx5 reports PTYS 19. Do not return it unless speed
is retrieved successfully.

Fixes: 65a5d35571849 ("net/mlx5: Refactor link speed handling with mlx5_link_info 
struct")
Suggested-by: Vitaly Kuznetsov <vkuzn...@redhat.com>
Signed-off-by: Li Tian <lit...@redhat.com>
---
v2:
  - Fix indentation and spacing only.
v1: https://lore.kernel.org/netdev/20250908085313.18768-1-lit...@redhat.com
---
  drivers/net/ethernet/mellanox/mlx5/core/port.c | 6 +++++-
  1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/port.c 
b/drivers/net/ethernet/mellanox/mlx5/core/port.c
index 2d7adf7444ba..aa9f2b0a77d3 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/port.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/port.c
@@ -1170,7 +1170,11 @@ const struct mlx5_link_info *mlx5_port_ptys2info(struct 
mlx5_core_dev *mdev,
        mlx5e_port_get_link_mode_info_arr(mdev, &table, &max_size,
                                          force_legacy);
        i = find_first_bit(&temp, max_size);
-       if (i < max_size)
+
+       /* mlx5e_link_info has holes. Check speed
+        * is not zero as indication of one.
+        */
+       if (i < max_size && table[i].speed)
                return &table[i];
return NULL;

Reviewed-by: Tariq Toukan <tar...@nvidia.com>
Thanks.

Reply via email to