]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
RDMA/mlx4: Fix resource leak on error in mlx4_ib_create_srq()
authorJason Gunthorpe <jgg@nvidia.com>
Tue, 28 Apr 2026 16:17:44 +0000 (13:17 -0300)
committerJason Gunthorpe <jgg@nvidia.com>
Sat, 2 May 2026 18:30:48 +0000 (15:30 -0300)
Sashiko points out that mlx4_srq_alloc() was not undone during error
unwind, add the missing call to mlx4_srq_free().

Cc: stable@vger.kernel.org
Fixes: 225c7b1feef1 ("IB/mlx4: Add a driver Mellanox ConnectX InfiniBand adapters")
Link: https://sashiko.dev/#/patchset/0-v1-e911b76a94d1%2B65d95-rdma_udata_rep_jgg%40nvidia.com?part=8
Link: https://patch.msgid.link/r/11-v1-41f3135e5565+9d2-rdma_ai_fixes1_jgg@nvidia.com
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/mlx4/srq.c

index 5b23e5f8b84aca5c4f7083d5bd3f720cc1d13320..767840736d583bceb239222a6d511abafbde4dab 100644 (file)
@@ -194,13 +194,15 @@ int mlx4_ib_create_srq(struct ib_srq *ib_srq,
        if (udata)
                if (ib_copy_to_udata(udata, &srq->msrq.srqn, sizeof (__u32))) {
                        err = -EFAULT;
-                       goto err_wrid;
+                       goto err_srq;
                }
 
        init_attr->attr.max_wr = srq->msrq.max - 1;
 
        return 0;
 
+err_srq:
+       mlx4_srq_free(dev->dev, &srq->msrq);
 err_wrid:
        if (udata)
                mlx4_ib_db_unmap_user(ucontext, &srq->db);