From: Leon Romanovsky <[email protected]>

All drivers now support the modern CQ creation interface via the
create_user_cq callback. Remove the legacy fallback to create_cq
for userspace CQ creation.

This simplifies the core code by eliminating conditional logic and
ensures all userspace CQ creation goes through the modern interface
that properly supports user-supplied umem.

Signed-off-by: Leon Romanovsky <[email protected]>
---
 drivers/infiniband/core/uverbs_cmd.c          | 9 +++------
 drivers/infiniband/core/uverbs_std_types_cq.c | 8 ++------
 2 files changed, 5 insertions(+), 12 deletions(-)

diff --git a/drivers/infiniband/core/uverbs_cmd.c 
b/drivers/infiniband/core/uverbs_cmd.c
index 041bed7a43b4..cdfee86fb800 100644
--- a/drivers/infiniband/core/uverbs_cmd.c
+++ b/drivers/infiniband/core/uverbs_cmd.c
@@ -1071,10 +1071,7 @@ static int create_cq(struct uverbs_attr_bundle *attrs,
        rdma_restrack_new(&cq->res, RDMA_RESTRACK_CQ);
        rdma_restrack_set_name(&cq->res, NULL);
 
-       if (ib_dev->ops.create_user_cq)
-               ret = ib_dev->ops.create_user_cq(cq, &attr, attrs);
-       else
-               ret = ib_dev->ops.create_cq(cq, &attr, attrs);
+       ret = ib_dev->ops.create_user_cq(cq, &attr, attrs);
        if (ret)
                goto err_free;
        rdma_restrack_add(&cq->res);
@@ -3791,7 +3788,7 @@ const struct uapi_definition uverbs_def_write_intf[] = {
                                     UAPI_DEF_WRITE_UDATA_IO(
                                             struct ib_uverbs_create_cq,
                                             struct ib_uverbs_create_cq_resp),
-                                    UAPI_DEF_METHOD_NEEDS_FN(create_cq)),
+                                    UAPI_DEF_METHOD_NEEDS_FN(create_user_cq)),
                DECLARE_UVERBS_WRITE(
                        IB_USER_VERBS_CMD_DESTROY_CQ,
                        ib_uverbs_destroy_cq,
@@ -3822,7 +3819,7 @@ const struct uapi_definition uverbs_def_write_intf[] = {
                                             reserved,
                                             struct ib_uverbs_ex_create_cq_resp,
                                             response_length),
-                       UAPI_DEF_METHOD_NEEDS_FN(create_cq)),
+                       UAPI_DEF_METHOD_NEEDS_FN(create_user_cq)),
                DECLARE_UVERBS_WRITE_EX(
                        IB_USER_VERBS_EX_CMD_MODIFY_CQ,
                        ib_uverbs_ex_modify_cq,
diff --git a/drivers/infiniband/core/uverbs_std_types_cq.c 
b/drivers/infiniband/core/uverbs_std_types_cq.c
index d2c8f71f934c..a12e3184dd5c 100644
--- a/drivers/infiniband/core/uverbs_std_types_cq.c
+++ b/drivers/infiniband/core/uverbs_std_types_cq.c
@@ -78,8 +78,7 @@ static int UVERBS_HANDLER(UVERBS_METHOD_CQ_CREATE)(
        int buffer_fd;
        int ret;
 
-       if ((!ib_dev->ops.create_cq && !ib_dev->ops.create_user_cq) ||
-           !ib_dev->ops.destroy_cq)
+       if (!ib_dev->ops.create_user_cq || !ib_dev->ops.destroy_cq)
                return -EOPNOTSUPP;
 
        ret = uverbs_copy_from(&attr.comp_vector, attrs,
@@ -200,10 +199,7 @@ static int UVERBS_HANDLER(UVERBS_METHOD_CQ_CREATE)(
        rdma_restrack_new(&cq->res, RDMA_RESTRACK_CQ);
        rdma_restrack_set_name(&cq->res, NULL);
 
-       if (ib_dev->ops.create_user_cq)
-               ret = ib_dev->ops.create_user_cq(cq, &attr, attrs);
-       else
-               ret = ib_dev->ops.create_cq(cq, &attr, attrs);
+       ret = ib_dev->ops.create_user_cq(cq, &attr, attrs);
        if (ret)
                goto err_free;
 

-- 
2.52.0


Reply via email to