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
