[PATCH 04/14] RDMA/cxgb4: Use common error handling code in recover_queues()

SF Markus Elfring
2017-02-08T21:14:40Z

Date: Wed, 8 Feb 2017 15:51:58 +0100

Add a jump target so that a bit of exception handling can be better reused
at the end of this function.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
drivers/infiniband/hw/cxgb4/device.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/infiniband/hw/cxgb4/device.c b/drivers/infiniband/hw/cxgb4/device.c
index 444c28206dae..46410c4a9afb 100644
--- a/drivers/infiniband/hw/cxgb4/device.c
+++ b/drivers/infiniband/hw/cxgb4/device.c
@@ -1467,10 +1467,9 @@ static void recover_queues(struct uld_ctx *ctx)
idr_for_each(&ctx->dev->qpidr, count_qps, &count);

qp_list.qps = kcalloc(count, sizeof(*qp_list.qps), GFP_ATOMIC);
- if (!qp_list.qps) {
- spin_unlock_irq(&ctx->dev->lock);
- return;
- }
+ if (!qp_list.qps)
+ goto unlock;
+
qp_list.idx = 0;

/* add and ref each qp so it doesn't get freed */
@@ -1488,6 +1487,7 @@ static void recover_queues(struct uld_ctx *ctx)
spin_lock_irq(&ctx->dev->lock);
WARN_ON(ctx->dev->db_state != RECOVERY);
ctx->dev->db_state = STOPPED;
+unlock:
spin_unlock_irq(&ctx->dev->lock);
}

--
2.11.1