diff --git a/srpt/src/ib_srpt.c b/srpt/src/ib_srpt.c index 375e311ce..3efdc54f3 100644 --- a/srpt/src/ib_srpt.c +++ b/srpt/src/ib_srpt.c @@ -2167,8 +2167,12 @@ static struct srpt_rdma_ch *srpt_find_channel(struct srpt_device *sdev, */ static void srpt_release_channel(struct srpt_rdma_ch *ch) { + TRACE_ENTRY(); + WARN_ON(ch->state != CH_RELEASING); schedule_work(&ch->release_work); + + TRACE_EXIT(); } #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 20) && !defined(BACKPORT_LINUX_WORKQUEUE_TO_2_6_19) @@ -2181,6 +2185,8 @@ static void srpt_release_channel_work(struct work_struct *w) struct srpt_rdma_ch *ch; struct srpt_device *sdev; + TRACE_ENTRY(); + #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 20) && !defined(BACKPORT_LINUX_WORKQUEUE_TO_2_6_19) ch = ctx; #else @@ -2223,6 +2229,8 @@ static void srpt_release_channel_work(struct work_struct *w) wake_up(&sdev->ch_releaseQ); kfree(ch); + + TRACE_EXIT(); } #if !defined(CONFIG_SCST_PROC)