53 lines
2.1 KiB
Diff
53 lines
2.1 KiB
Diff
From 421118c839b06cb8a5813d102897509002765133 Mon Sep 17 00:00:00 2001
|
|
From: Kamal Heib <kheib@redhat.com>
|
|
Date: Fri, 17 Apr 2026 11:35:09 -0400
|
|
Subject: [PATCH] IB/mlx5: Fix obj_type mismatch for SRQ event subscriptions
|
|
|
|
JIRA: https://redhat.atlassian.net/browse/RHEL-169055
|
|
|
|
commit 85fe9f565d2d5af95ac2bbaa5082b8ce62b039f5
|
|
Author: Or Har-Toov <ohartoov@nvidia.com>
|
|
Date: Wed Aug 13 15:43:20 2025 +0300
|
|
|
|
IB/mlx5: Fix obj_type mismatch for SRQ event subscriptions
|
|
|
|
Fix a bug where the driver's event subscription logic for SRQ-related
|
|
events incorrectly sets obj_type for RMP objects.
|
|
|
|
When subscribing to SRQ events, get_legacy_obj_type() did not handle
|
|
the MLX5_CMD_OP_CREATE_RMP case, which caused obj_type to be 0
|
|
(default).
|
|
This led to a mismatch between the obj_type used during subscription
|
|
(0) and the value used during notification (1, taken from the event's
|
|
type field). As a result, event mapping for SRQ objects could fail and
|
|
event notification would not be delivered correctly.
|
|
|
|
This fix adds handling for MLX5_CMD_OP_CREATE_RMP in get_legacy_obj_type,
|
|
returning MLX5_EVENT_QUEUE_TYPE_RQ so obj_type is consistent between
|
|
subscription and notification.
|
|
|
|
Fixes: 759738537142 ("IB/mlx5: Enable subscription for device events over DEVX")
|
|
Link: https://patch.msgid.link/r/8f1048e3fdd1fde6b90607ce0ed251afaf8a148c.1755088962.git.leon@kernel.org
|
|
Signed-off-by: Or Har-Toov <ohartoov@nvidia.com>
|
|
Reviewed-by: Edward Srouji <edwards@nvidia.com>
|
|
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
|
|
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
|
|
|
|
Signed-off-by: Kamal Heib <kheib@redhat.com>
|
|
|
|
diff --git a/drivers/infiniband/hw/mlx5/devx.c b/drivers/infiniband/hw/mlx5/devx.c
|
|
index 8694df5bf5ae..4e2edf3378d7 100644
|
|
--- a/drivers/infiniband/hw/mlx5/devx.c
|
|
+++ b/drivers/infiniband/hw/mlx5/devx.c
|
|
@@ -233,6 +233,7 @@ static u16 get_legacy_obj_type(u16 opcode)
|
|
{
|
|
switch (opcode) {
|
|
case MLX5_CMD_OP_CREATE_RQ:
|
|
+ case MLX5_CMD_OP_CREATE_RMP:
|
|
return MLX5_EVENT_QUEUE_TYPE_RQ;
|
|
case MLX5_CMD_OP_CREATE_QP:
|
|
return MLX5_EVENT_QUEUE_TYPE_QP;
|
|
--
|
|
2.50.1 (Apple Git-155)
|
|
|