OSDN Git Service

RDMA/srpt: Rework the srpt_alloc_srq() error path
authorBart Van Assche <bvanassche@acm.org>
Mon, 17 Dec 2018 21:20:45 +0000 (13:20 -0800)
committerDoug Ledford <dledford@redhat.com>
Wed, 19 Dec 2018 20:07:26 +0000 (15:07 -0500)
This patch does not change any functionality but makes the next patch
easier to read.

Cc: Sergey Gorenko <sergeygo@mellanox.com>
Cc: Max Gurtovoy <maxg@mellanox.com>
Cc: Laurence Oberman <loberman@redhat.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/ulp/srpt/ib_srpt.c

index 7d5acb1..772d756 100644 (file)
@@ -2942,10 +2942,8 @@ static int srpt_alloc_srq(struct srpt_device *sdev)
                srpt_alloc_ioctx_ring(sdev, sdev->srq_size,
                                      sizeof(*sdev->ioctx_ring[0]),
                                      srp_max_req_size, DMA_FROM_DEVICE);
-       if (!sdev->ioctx_ring) {
-               ib_destroy_srq(srq);
-               return -ENOMEM;
-       }
+       if (!sdev->ioctx_ring)
+               goto free_srq;
 
        sdev->use_srq = true;
        sdev->srq = srq;
@@ -2956,6 +2954,10 @@ static int srpt_alloc_srq(struct srpt_device *sdev)
        }
 
        return 0;
+
+free_srq:
+       ib_destroy_srq(srq);
+       return -ENOMEM;
 }
 
 static int srpt_use_srq(struct srpt_device *sdev, bool use_srq)