]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Aug 2025 14:34:44 +0000 (16:34 +0200)
[ Upstream commit d5c74713f0117d07f91eb48b10bc2ad44e23c9b9 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/hw/erdma/erdma_verbs.c

index ec0ad40860668ada8163a91bbb26435973c310fb..c1b2b8c3cdccaab687a7333124d515d0d2822bbb 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;