summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Taranov <kotaranov@microsoft.com>2025-02-05 13:35:13 +0300
committerLeon Romanovsky <leon@kernel.org>2025-02-06 11:51:13 +0300
commitcd3c5ddf823016b0c670d1965c5d312b3cf8bb7b (patch)
treea16e9f605aa4bcc6cb8ce55b8c4b3cc5de6e7e1b
parentbad4480934c8227d8a03b6b76e276349506b2bfe (diff)
downloadlinux-cd3c5ddf823016b0c670d1965c5d312b3cf8bb7b.tar.xz
RDMA/mana_ib: request error CQEs when supported
Request an adapter with error CQEs when it is supported. Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com> Link: https://patch.msgid.link/1738751713-16169-3-git-send-email-kotaranov@linux.microsoft.com Signed-off-by: Leon Romanovsky <leon@kernel.org>
-rw-r--r--drivers/infiniband/hw/mana/main.c3
-rw-r--r--drivers/infiniband/hw/mana/mana_ib.h8
2 files changed, 11 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/mana/main.c b/drivers/infiniband/hw/mana/main.c
index 3d4b8e21d63a..e3230fe31fbc 100644
--- a/drivers/infiniband/hw/mana/main.c
+++ b/drivers/infiniband/hw/mana/main.c
@@ -794,6 +794,9 @@ int mana_ib_gd_create_rnic_adapter(struct mana_ib_dev *mdev)
req.hdr.dev_id = gc->mana_ib.dev_id;
req.notify_eq_id = mdev->fatal_err_eq->id;
+ if (mdev->adapter_caps.feature_flags & MANA_IB_FEATURE_CLIENT_ERROR_CQE_SUPPORT)
+ req.feature_flags |= MANA_IB_FEATURE_CLIENT_ERROR_CQE_REQUEST;
+
err = mana_gd_send_request(gc, sizeof(req), &req, sizeof(resp), &resp);
if (err) {
ibdev_err(&mdev->ib_dev, "Failed to create RNIC adapter err %d", err);
diff --git a/drivers/infiniband/hw/mana/mana_ib.h b/drivers/infiniband/hw/mana/mana_ib.h
index baaeef0dc8bb..ad716a90c7be 100644
--- a/drivers/infiniband/hw/mana/mana_ib.h
+++ b/drivers/infiniband/hw/mana/mana_ib.h
@@ -211,6 +211,10 @@ struct mana_ib_query_adapter_caps_req {
struct gdma_req_hdr hdr;
}; /*HW Data */
+enum mana_ib_adapter_features {
+ MANA_IB_FEATURE_CLIENT_ERROR_CQE_SUPPORT = BIT(4),
+};
+
struct mana_ib_query_adapter_caps_resp {
struct gdma_resp_hdr hdr;
u32 max_sq_id;
@@ -234,6 +238,10 @@ struct mana_ib_query_adapter_caps_resp {
u64 feature_flags;
}; /* HW Data */
+enum mana_ib_adapter_features_request {
+ MANA_IB_FEATURE_CLIENT_ERROR_CQE_REQUEST = BIT(1),
+}; /*HW Data */
+
struct mana_rnic_create_adapter_req {
struct gdma_req_hdr hdr;
u32 notify_eq_id;