On Thu, Dec 19, 2024 at 02:23:36PM +0200, Leon Romanovsky wrote: > From: Mark Zhang <markzhang@xxxxxxxxxx> > > Driver queries vport_cxt.num_plane and enables multiplane when it is > greater then 0, but some old FWs (versions from x.40.1000 till x.42.1000), > report vport_cxt.num_plane = 1 unexpectedly. > > Fix it by querying num_plane only when HCA_CAP2.multiplane bit is set. > > Fixes: 2a5db20fa532 ("RDMA/mlx5: Add support to multi-plane device and port") > Cc: stable@xxxxxxxxxxxxxxx > Reported-by: Francesco Poli <invernomuto@xxxxxxxxxxxxx> > Closes: https://lore.kernel.org/all/nvs4i2v7o6vn6zhmtq4sgazy2hu5kiulukxcntdelggmznnl7h@so3oul6uwgbl/ > Signed-off-by: Mark Zhang <markzhang@xxxxxxxxxx> > Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxx> > --- > drivers/infiniband/hw/mlx5/main.c | 2 +- > include/linux/mlx5/mlx5_ifc.h | 4 +++- > 2 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c > index c2314797afc9..f5b59d02f4d3 100644 > --- a/drivers/infiniband/hw/mlx5/main.c > +++ b/drivers/infiniband/hw/mlx5/main.c > @@ -2839,7 +2839,7 @@ static int mlx5_ib_get_plane_num(struct mlx5_core_dev *mdev, u8 *num_plane) > int err; > > *num_plane = 0; > - if (!MLX5_CAP_GEN(mdev, ib_virt)) > + if (!MLX5_CAP_GEN(mdev, ib_virt) || !MLX5_CAP_GEN_2(mdev, multiplane)) > return 0; > > err = mlx5_query_hca_vport_context(mdev, 0, 1, 0, &vport_ctx); > diff --git a/include/linux/mlx5/mlx5_ifc.h b/include/linux/mlx5/mlx5_ifc.h > index 4fbbcf35498b..48d47181c7cd 100644 > --- a/include/linux/mlx5/mlx5_ifc.h > +++ b/include/linux/mlx5/mlx5_ifc.h > @@ -2119,7 +2119,9 @@ struct mlx5_ifc_cmd_hca_cap_2_bits { > u8 migration_in_chunks[0x1]; > u8 reserved_at_d1[0x1]; > u8 sf_eq_usage[0x1]; > - u8 reserved_at_d3[0xd]; > + u8 reserved_at_d3[0x5]; > + u8 multiplane[0x1]; > + u8 reserved_at_d9[0x7]; > > u8 cross_vhca_object_to_object_supported[0x20]; Reviewed-by: Michal Swiatkowski <michal.swiatkowski@xxxxxxxxxxxxxxx> Just out of curiosity, don't you have mlx5-net or sth like that for fixes? > > -- > 2.47.0