Li Tian <lit...@redhat.com> writes: > Because mlx5e_link_mode is sparse e.g. Azure mlx5 reports PTYS 19. > Do not return it when speed unless 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> > --- > 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..a69c83da2542 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_mode is sparse. Check speed
The array is either 'mlx5e_link_mode' or 'mlx5e_ext_link_info' but both have holes in them. > + * is non-zero as indication of a hole. > + */ > + if (i < max_size && table[i].speed) > return &table[i]; > > return NULL; -- Vitaly