]> Pileus Git - ~andy/linux/blobdiff - drivers/infiniband/ulp/srpt/ib_srpt.c
ib_srpt: Destroy cm_id before destroying QP.
[~andy/linux] / drivers / infiniband / ulp / srpt / ib_srpt.c
index 653ac6bfc57a61147bbeb72fbc598a0d1884b734..9ea7727a2825c21b13a2e48d9e5bf5420e34e4a5 100644 (file)
@@ -2358,6 +2358,8 @@ static void srpt_release_channel_work(struct work_struct *w)
        transport_deregister_session(se_sess);
        ch->sess = NULL;
 
+       ib_destroy_cm_id(ch->cm_id);
+
        srpt_destroy_ch_ib(ch);
 
        srpt_free_ioctx_ring((struct srpt_ioctx **)ch->ioctx_ring,
@@ -2368,8 +2370,6 @@ static void srpt_release_channel_work(struct work_struct *w)
        list_del(&ch->list);
        spin_unlock_irq(&sdev->spinlock);
 
-       ib_destroy_cm_id(ch->cm_id);
-
        if (ch->release_done)
                complete(ch->release_done);