OSDN Git Service

IB/srpt: Fix srpt_cm_req_recv() error path (2/2)
authorBart Van Assche <bart.vanassche@wdc.com>
Tue, 10 Jul 2018 17:31:59 +0000 (10:31 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 9 Sep 2018 08:32:32 +0000 (10:32 +0200)
commit 6869e0004fe16184acd6488f0c637e0081a84a8a upstream.

If a login request was received through the RDMA/CM and if an error occurs
during login, clear rdma_cm_id->context instead of ib_cm_id->context.

Fixes: 63cf1a902c9d ("IB/srpt: Add RDMA/CM support")
Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/infiniband/ulp/srpt/ib_srpt.c

index b9fe7c8..5cc8642 100644 (file)
@@ -2360,8 +2360,11 @@ free_ring:
        srpt_free_ioctx_ring((struct srpt_ioctx **)ch->ioctx_ring,
                             ch->sport->sdev, ch->rq_size,
                             ch->max_rsp_size, DMA_TO_DEVICE);
+
 free_ch:
-       if (ib_cm_id)
+       if (rdma_cm_id)
+               rdma_cm_id->context = NULL;
+       else
                ib_cm_id->context = NULL;
        kfree(ch);
        ch = NULL;