FreeBSD/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c
/*
 * Timed out waiting for the final fin/ack from rdma_disconnect().
 */
Timed out waiting for the final fin/ack from rdma_disconnect().
Timed out waiting for the final fin / ack from rdma_disconnect () .
static void
sdp_dreq_timeout(void *data)
{
	struct sdp_sock *ssk;
	ssk = data;
        if (!callout_active(&ssk->keep2msl))
		goto out;
	if (callout_pending(&ssk->keep2msl))
		goto out;
        callout_deactivate(&ssk->keep2msl);
	if (ssk->state != TCPS_FIN_WAIT_1 && ssk->state != TCPS_LAST_ACK)
		goto out;
	if ((ssk->flags & SDP_DREQWAIT) == 0)
		goto out;
	ssk->flags &= ~SDP_DREQWAIT;
	ssk->flags |= SDP_DISCON;
	sdp_2msl_wait(ssk);
	ssk->qp_active = 0;
out:
	SDP_WUNLOCK(ssk);
}
static void sdp_dreq_timeout ( void * data ) { struct sdp_sock * ssk ; ssk = data ; if ( ! callout_active ( & ssk -> keep2msl ) ) goto out ; if ( callout_pending ( & ssk -> keep2msl ) ) goto out ; callout_deactivate ( & ssk -> keep2msl ) ; if ( ssk -> state != TCPS_FIN_WAIT_1 && ssk -> state != TCPS_LAST_ACK ) goto out ; if ( ( ssk -> flags & SDP_DREQWAIT ) == 0 ) goto out ; ssk -> flags &= ~ SDP_DREQWAIT ; ssk -> flags |= SDP_DISCON ; sdp_2msl_wait ( ssk ) ; ssk -> qp_active = 0 ; out : SDP_WUNLOCK ( ssk ) ; }
Timed out waiting for the final fin/ack from rdma_disconnect().
Timed out waiting for the final fin / ack from rdma_disconnect () .
/* Callout canceled. */ /* Callout rescheduled, probably as a different timer. */