Skip to content

Commit 45d339f

Browse files
MarkZhang81jgunthorpe
authored andcommitted
RDMA/mlx5: Enable multiplane mode only when it is supported
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: 2a5db20 ("RDMA/mlx5: Add support to multi-plane device and port") Link: https://patch.msgid.link/r/1ef901acdf564716fcf550453cf5e94f343777ec.1734610916.git.leon@kernel.org Cc: stable@vger.kernel.org Reported-by: Francesco Poli <invernomuto@paranoici.org> Closes: https://lore.kernel.org/all/nvs4i2v7o6vn6zhmtq4sgazy2hu5kiulukxcntdelggmznnl7h@so3oul6uwgbl/ Signed-off-by: Mark Zhang <markzhang@nvidia.com> Signed-off-by: Leon Romanovsky <leonro@nvidia.com> Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
1 parent e6178bf commit 45d339f

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

drivers/infiniband/hw/mlx5/main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2839,7 +2839,7 @@ static int mlx5_ib_get_plane_num(struct mlx5_core_dev *mdev, u8 *num_plane)
28392839
int err;
28402840

28412841
*num_plane = 0;
2842-
if (!MLX5_CAP_GEN(mdev, ib_virt))
2842+
if (!MLX5_CAP_GEN(mdev, ib_virt) || !MLX5_CAP_GEN_2(mdev, multiplane))
28432843
return 0;
28442844

28452845
err = mlx5_query_hca_vport_context(mdev, 0, 1, 0, &vport_ctx);

include/linux/mlx5/mlx5_ifc.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2119,7 +2119,9 @@ struct mlx5_ifc_cmd_hca_cap_2_bits {
21192119
u8 migration_in_chunks[0x1];
21202120
u8 reserved_at_d1[0x1];
21212121
u8 sf_eq_usage[0x1];
2122-
u8 reserved_at_d3[0xd];
2122+
u8 reserved_at_d3[0x5];
2123+
u8 multiplane[0x1];
2124+
u8 reserved_at_d9[0x7];
21232125

21242126
u8 cross_vhca_object_to_object_supported[0x20];
21252127

0 commit comments

Comments
 (0)