[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <aOflenF0XHtm80G9@homelab>
Date: Fri, 10 Oct 2025 00:40:26 +0800
From: Shuhao Fu <sfual@....ust.hk>
To: Jason Gunthorpe <jgg@...dia.com>, Leon Romanovsky <leonro@...dia.com>
Cc: linux-rdma@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH] RDMA/uverbs: fix umem release in UVERBS_METHOD_CQ_CREATE
In `UVERBS_METHOD_CQ_CREATE`, umem should be released if anything goes
wrong. Currently, if `create_cq_umem` fails, umem would not be
released or referenced, causing a possible leak.
Fixes: 1a40c362ae26 ("RDMA/uverbs: Add a common way to create CQ with umem")
Signed-off-by: Shuhao Fu <sfual@....ust.hk>
---
drivers/infiniband/core/uverbs_std_types_cq.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/infiniband/core/uverbs_std_types_cq.c b/drivers/infiniband/core/uverbs_std_types_cq.c
index 37cd37556510..9344020dede1 100644
--- a/drivers/infiniband/core/uverbs_std_types_cq.c
+++ b/drivers/infiniband/core/uverbs_std_types_cq.c
@@ -193,8 +193,10 @@ static int UVERBS_HANDLER(UVERBS_METHOD_CQ_CREATE)(
ret = umem ? ib_dev->ops.create_cq_umem(cq, &attr, umem, attrs) :
ib_dev->ops.create_cq(cq, &attr, attrs);
- if (ret)
+ if (ret) {
+ ib_umem_release(umem);
goto err_free;
+ }
obj->uevent.uobject.object = cq;
obj->uevent.uobject.user_handle = user_handle;
--
2.39.5
Powered by blists - more mailing lists