/* Just cleanup this event struct. Everything else is handled by the ADISC completion handler. If the ADISC never actually comes back, we still have the timer running on the ADISC event struct which will fire and cause the CRQ to get reset.  */
static void ibmvfc_tgt_adisc_cancel_done(struct ibmvfc_event *evt)
/* Just cleanup this event struct. Everything else is handled by the ADISC completion handler. If the ADISC never actually comes back, we still have the timer running on the ADISC event struct which will fire and cause the CRQ to get reset.  */
static void ibmvfc_tgt_adisc_cancel_done(struct ibmvfc_event *evt)
{
	struct ibmvfc_host *vhost = evt->vhost;
	struct ibmvfc_target *tgt = evt->tgt;
	tgt_dbg(tgt, "ADISC cancel complete\n");
	vhost->abort_threads--;
	ibmvfc_free_event(evt);
	kref_put(&tgt->kref, ibmvfc_release_tgt);
	wake_up(&vhost->work_wait_q);
}