diff --git a/srpt/src/ib_srpt.c b/srpt/src/ib_srpt.c index 3b123cd51..50863460a 100644 --- a/srpt/src/ib_srpt.c +++ b/srpt/src/ib_srpt.c @@ -4484,11 +4484,11 @@ out: err_cm: ib_destroy_cm_id(sdev->cm_id); err_ring: + if (sdev->use_srq) + ib_destroy_srq(sdev->srq); srpt_free_ioctx_ring((struct srpt_ioctx **)sdev->ioctx_ring, sdev, sdev->srq_size, srp_max_req_size, DMA_FROM_DEVICE); - if (sdev->use_srq) - ib_destroy_srq(sdev->srq); err_mr: #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 9, 0) ib_dereg_mr(sdev->mr); @@ -4559,12 +4559,10 @@ static void srpt_remove_one(struct ib_device *device, void *client_data) } } - srpt_free_ioctx_ring((struct srpt_ioctx **)sdev->ioctx_ring, sdev, - sdev->srq_size, srp_max_req_size, DMA_FROM_DEVICE); - sdev->ioctx_ring = NULL; - if (sdev->use_srq) ib_destroy_srq(sdev->srq); + srpt_free_ioctx_ring((struct srpt_ioctx **)sdev->ioctx_ring, sdev, + sdev->srq_size, srp_max_req_size, DMA_FROM_DEVICE); #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 9, 0) ib_dereg_mr(sdev->mr); #endif