Linux RDMA and InfiniBand development
 help / color / mirror / Atom feed
* [PATCH rdma-rc] RDMA/mlx5: Skip vport context query on FW without ib_virt support
@ 2026-11-12 13:27 Edward Srouji
  2026-11-12 13:35 ` sashiko-bot
  0 siblings, 1 reply; 2+ messages in thread
From: Edward Srouji @ 2026-11-12 13:27 UTC (permalink / raw)
  To: Leon Romanovsky, Jason Gunthorpe, Artemy Kovalyov
  Cc: linux-rdma, linux-kernel, Moshe Shemesh, stable, Tony Battersby,
	Edward Srouji

From: Moshe Shemesh <moshe@nvidia.com>

Since commit b02289b3d60f ("RDMA: Validate grh_required when handling
AVs"), mlx5_port_immutable() unconditionally issues
QUERY_HCA_VPORT_CONTEXT on InfiniBand ports to read grh_required.
Devices that do not support the InfiniBand virtualization interface
(ib_virt cleared) are not guaranteed to implement this command. For
example, Connect-IB with FW 10.10.5020 rejects it and mlx5_ib fails to
probe:

  mlx5_core 0000:01:00.0: mlx5_cmd_out_err:810:(pid 731): QUERY_HCA_VPORT_CONTEXT(0x762) op_mod(0x0) failed, status bad operation(0x2), syndrome (0x3590f5), err(-22)
  infiniband mlx5_0: Couldn't create per-port data
  mlx5_ib.rdma: probe of mlx5_core.rdma.0 failed with error -12

All other HCA vport context users in mlx5_ib are already gated on
ib_virt, either directly, as in set_has_smi_cap(),
mlx5_ib_get_plane_num() and mlx5_ib_modify_port(), or via
mlx5_use_mad_ifc(), which selects MAD_IFC for port queries when
ib_virt is not supported.

Skipping the query loses nothing. grh_required indicates a GID-based
vport, which only exists with InfiniBand virtualization. Without
ib_virt the port is always LID-based and the field is zero, even on
firmware that accepts the command. This also matches the behavior
before b02289b3d60f, when grh_required was filled in only by
mlx5_query_hca_port() and was never set on the MAD_IFC path.

Fixes: b02289b3d60f ("RDMA: Validate grh_required when handling AVs")
Cc: stable@vger.kernel.org
Reported-by: Tony Battersby <tonyb@cybernetics.com>
Closes: https://lore.kernel.org/all/064dfa67-8fd4-40f0-b925-6d1e0cd42e6a@cybernetics.com/
Tested-by: Tony Battersby <tonyb@cybernetics.com>
Signed-off-by: Moshe Shemesh <moshe@nvidia.com>
Signed-off-by: Edward Srouji <edwards@nvidia.com>
---
 drivers/infiniband/hw/mlx5/main.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c
index 65455aedd559b6291831492e92a68b24a6bd361e..2ab38068db838880419f1f9d446c6527bc567c59 100644
--- a/drivers/infiniband/hw/mlx5/main.c
+++ b/drivers/infiniband/hw/mlx5/main.c
@@ -3536,7 +3536,8 @@ static int mlx5_port_immutable(struct ib_device *ibdev, u32 port_num,
 	if (err)
 		return err;
 
-	if (ll == IB_LINK_LAYER_INFINIBAND) {
+	if (ll == IB_LINK_LAYER_INFINIBAND &&
+	    MLX5_CAP_GEN(dev->mdev, ib_virt)) {
 		if (ibdev->type == RDMA_DEVICE_TYPE_SMI)
 			port_num = smi_to_native_portnum(dev, port_num);
 

---
base-commit: 915fb85a378e02f22c9bc3c9c9166582d276629e
change-id: 20261111-moshe-ib-virt-guard-ecedee769166

Best regards,
-- 
Edward Srouji <edwards@nvidia.com>


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH rdma-rc] RDMA/mlx5: Skip vport context query on FW without ib_virt support
  2026-11-12 13:27 [PATCH rdma-rc] RDMA/mlx5: Skip vport context query on FW without ib_virt support Edward Srouji
@ 2026-11-12 13:35 ` sashiko-bot
  0 siblings, 0 replies; 2+ messages in thread
From: sashiko-bot @ 2026-11-12 13:35 UTC (permalink / raw)
  To: Edward Srouji; +Cc: linux-rdma

> From: Moshe Shemesh <moshe@nvidia.com>
> 
> Since commit b02289b3d60f ("RDMA: Validate grh_required when handling
> AVs"), mlx5_port_immutable() unconditionally issues
> QUERY_HCA_VPORT_CONTEXT on InfiniBand ports to read grh_required.
> Devices that do not support the InfiniBand virtualization interface
> (ib_virt cleared) are not guaranteed to implement this command. For
> example, Connect-IB with FW 10.10.5020 rejects it and mlx5_ib fails to
> probe:
> 
>   mlx5_core 0000:01:00.0: mlx5_cmd_out_err:810:(pid 731): QUERY_HCA_VPORT_CONTEXT(0x762) op_mod(0x0) failed, status bad operation(0x2), syndrome (0x3590f5), err(-22)
>   infiniband mlx5_0: Couldn't create per-port data
>   mlx5_ib.rdma: probe of mlx5_core.rdma.0 failed with error -12
> 
> All other HCA vport context users in mlx5_ib are already gated on
> [ ... ]
> Reported-by: Tony Battersby <tonyb@cybernetics.com>
> Closes: https://lore.kernel.org/all/064dfa67-8fd4-40f0-b925-6d1e0cd42e6a@cybernetics.com/
> Tested-by: Tony Battersby <tonyb@cybernetics.com>
> Signed-off-by: Moshe Shemesh <moshe@nvidia.com>
> Signed-off-by: Edward Srouji <edwards@nvidia.com>

Sashiko has reviewed this patch and found no issues.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261112-moshe-ib-virt-guard-v1-1-6d2caf8bdb1b@nvidia.com?part=1


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-11-12 13:35 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-12 13:27 [PATCH rdma-rc] RDMA/mlx5: Skip vport context query on FW without ib_virt support Edward Srouji
2026-11-12 13:35 ` sashiko-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox