From nobody Thu Apr 2 22:08:39 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2FD1635E558; Fri, 13 Feb 2026 11:00:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770980445; cv=none; b=thqpN1kT8+DFlHUQ1h+Op9MxFWoQ1g03+vzXbkraKnwOGZsXmYcWobnyBo/wYTLSKZKgBm3dTEZrfFZlJtjY6nWPXPtjbtn7Ncc/WPVyR+/ONmLRiTK7vKbwcaYdc3RrR0iUL2IZBZwO3aIsse3SJe+uNc9RhMyVwjHkmhSCDLI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770980445; c=relaxed/simple; bh=2nVLE73sT2uaUudlFaxYimETRxX/g6qBtDOZjvSQO0I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=N0djZfXcNcHbHwr+0KOzQbyJuOIGWPvWAUReVIcUtB7vAGa5oAfvd90wlNV6O9UoarazuLOSQfCwxh1nDKigk20lJopPj7YBhVD6Wn1MTo/Kszi+h1xfuf31vDCU8ZAlYR5IHatci0mZ3qWB2jb+BEoxbEOOSCaOUmVgkLJFnmM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=cDYe/qQb; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="cDYe/qQb" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6D06EC116C6; Fri, 13 Feb 2026 11:00:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770980445; bh=2nVLE73sT2uaUudlFaxYimETRxX/g6qBtDOZjvSQO0I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cDYe/qQbdAS++XO3ZDdALH5QDW1EbZV+dBVWefvD5H7nNwAPz8tcSUOyl/i1VaQ6w xiDySHBCW7fLfIy4Rx09MdsCZR/mb7kaC+bZ7NxHGcR5+bWDHgX+g+gu71zDHMfTrJ /SCNJyoA5Z6Bw+qS+tgz50JQiD9teIlqslUq8gA4CSe1aSnQ/8ITIDBleT8RjA2z/k SUiTFXuxXMnzTpZ0Mi0UzvC3jJ5LgJHSbxjhjSmjN8Hk+JGpKDo925odrLy6mbIXju C39xhF4URUo95wlwgdgHdLUeuDu4VrlUe0kyW2v21THFUUiKhvwxzpXiMtmPo8ZjaF sP4bzB1EyaSdA== From: Leon Romanovsky To: Jason Gunthorpe , Leon Romanovsky , Selvin Xavier , Kalesh AP , Potnuri Bharat Teja , Michael Margolin , Gal Pressman , Yossi Leybovich , Cheng Xu , Kai Shen , Chengchang Tang , Junxian Huang , Abhijit Gangurde , Allen Hubbe , Krzysztof Czurylo , Tatyana Nikolova , Long Li , Konstantin Taranov , Yishai Hadas , Michal Kalderon , Bryan Tan , Vishnu Dasa , Broadcom internal kernel review list , Christian Benvenuti , Nelson Escobar , Dennis Dalessandro , Bernard Metzler , Zhu Yanjun Cc: linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, linux-hyperv@vger.kernel.org Subject: [PATCH rdma-next 30/50] RDMA/core: Remove legacy CQ creation fallback path Date: Fri, 13 Feb 2026 12:58:06 +0200 Message-ID: <20260213-refactor-umem-v1-30-f3be85847922@nvidia.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260213-refactor-umem-v1-0-f3be85847922@nvidia.com> References: <20260213-refactor-umem-v1-0-f3be85847922@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.15-dev-47773 Content-Transfer-Encoding: quoted-printable From: Leon Romanovsky 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 --- 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 *attr= s, rdma_restrack_new(&cq->res, RDMA_RESTRACK_CQ); rdma_restrack_set_name(&cq->res, NULL); =20 - if (ib_dev->ops.create_user_cq) - ret =3D ib_dev->ops.create_user_cq(cq, &attr, attrs); - else - ret =3D ib_dev->ops.create_cq(cq, &attr, attrs); + ret =3D 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[] = =3D { 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[] = =3D { 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/infini= band/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; =20 - 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; =20 ret =3D 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); =20 - if (ib_dev->ops.create_user_cq) - ret =3D ib_dev->ops.create_user_cq(cq, &attr, attrs); - else - ret =3D ib_dev->ops.create_cq(cq, &attr, attrs); + ret =3D ib_dev->ops.create_user_cq(cq, &attr, attrs); if (ret) goto err_free; =20 --=20 2.52.0