From 9236ef4ef812edd316bd8607e6480cc1f0a1ef55 Mon Sep 17 00:00:00 2001 From: Yan Burman Date: Sun, 16 Nov 2014 13:24:27 +0000 Subject: [PATCH] isert: Do not leak workqueues if ib_create_cq failed Signed-off-by: Yan Burman git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/iser@5868 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- iscsi-scst/kernel/isert-scst/iser_rdma.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/iscsi-scst/kernel/isert-scst/iser_rdma.c b/iscsi-scst/kernel/isert-scst/iser_rdma.c index 1b334890b..c51713e7a 100644 --- a/iscsi-scst/kernel/isert-scst/iser_rdma.c +++ b/iscsi-scst/kernel/isert-scst/iser_rdma.c @@ -856,6 +856,7 @@ static struct isert_device *isert_device_create(struct ib_device *ib_dev) cqe_num, i); /* completion vector */ if (unlikely(IS_ERR(cq))) { + cq_desc->cq = NULL; err = PTR_ERR(cq); pr_err("Failed to create iser dev cq, err:%d\n", err); goto fail_cq; @@ -883,7 +884,7 @@ static struct isert_device *isert_device_create(struct ib_device *ib_dev) return isert_dev; fail_cq: - for (j = 0; j < i; ++j) { + for (j = 0; j <= i; ++j) { if (isert_dev->cq_desc[j].cq) ib_destroy_cq(isert_dev->cq_desc[j].cq); if (isert_dev->cq_desc[j].cq_workqueue)