RDMA/erdma: Fix ignored return value of init_kernel_qp
authorBoshi Yu <boshiyu@linux.alibaba.com>
Fri, 25 Jul 2025 05:53:55 +0000 (13:53 +0800)
committerLeon Romanovsky <leon@kernel.org>
Wed, 13 Aug 2025 10:23:54 +0000 (06:23 -0400)
The init_kernel_qp interface may fail. Check its return value and free
related resources properly when it does.

Fixes: 155055771704 ("RDMA/erdma: Add verbs implementation")
Reviewed-by: Cheng Xu <chengyou@linux.alibaba.com>
Signed-off-by: Boshi Yu <boshiyu@linux.alibaba.com>
Link: https://patch.msgid.link/20250725055410.67520-3-boshiyu@linux.alibaba.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/hw/erdma/erdma_verbs.c

index 94c211df09d84a042c64b3021b438f565676cf3a..2e01520ca3850f7712567f940bb33b3ba55ab397 100644 (file)
@@ -1031,7 +1031,9 @@ int erdma_create_qp(struct ib_qp *ibqp, struct ib_qp_init_attr *attrs,
                if (ret)
                        goto err_out_cmd;
        } else {
-               init_kernel_qp(dev, qp, attrs);
+               ret = init_kernel_qp(dev, qp, attrs);
+               if (ret)
+                       goto err_out_xa;
        }
 
        qp->attrs.max_send_sge = attrs->cap.max_send_sge;