diff --git a/srpt/src/ib_srpt.c b/srpt/src/ib_srpt.c index 0e74d6c73..895eeacb3 100644 --- a/srpt/src/ib_srpt.c +++ b/srpt/src/ib_srpt.c @@ -2154,6 +2154,7 @@ static bool __srpt_close_ch(struct srpt_rdma_ch *ch) /* fall through */ case CH_LIVE: was_live = true; + wake_up_process(&ch->thread); if (ib_send_cm_dreq(ch->cm_id, NULL, 0) < 0) PRINT_ERROR("sending CM DREQ failed."); break; @@ -3404,6 +3405,7 @@ static int srpt_release_sdev(struct srpt_device *sdev) ch->sess_name, ch->state, atomic_read(&ch->scst_sess->sess_cmd_count)); + __srpt_close_ch(ch); } spin_unlock_irq(&sdev->spinlock); }