FreeBSD/sys/dev/cxgb/ulp/tom/cxgb_listen.c
/* Don't call this directly, use release_lctx instead */
Don't call this directly, use release_lctx instead
Don ' t call this directly use release_lctx instead
static int
free_lctx(struct tom_data *td, struct listen_ctx *lctx)
{
	struct inpcb *inp = lctx->inp;
	INP_WLOCK_ASSERT(inp);
	KASSERT(lctx->refcnt == 0,
	    ("%s: refcnt %d", __func__, lctx->refcnt));
	KASSERT(TAILQ_EMPTY(&lctx->synq),
	    ("%s: synq not empty.", __func__));
	KASSERT(lctx->stid >= 0, ("%s: bad stid %d.", __func__, lctx->stid));
	CTR4(KTR_CXGB, "%s: stid %u, lctx %p, inp %p",
	    __func__, lctx->stid, lctx, lctx->inp);
	free_stid(&td->tid_maps, lctx->stid);
	free(lctx, M_CXGB);
	return in_pcbrele_wlocked(inp);
}
static int free_lctx ( struct tom_data * td , struct listen_ctx * lctx ) { struct inpcb * inp = lctx -> inp ; INP_WLOCK_ASSERT ( inp ) ; KASSERT ( lctx -> refcnt == 0 , ( " " , __func__ , lctx -> refcnt ) ) ; KASSERT ( TAILQ_EMPTY ( & lctx -> synq ) , ( " " , __func__ ) ) ; KASSERT ( lctx -> stid >= 0 , ( " " , __func__ , lctx -> stid ) ) ; CTR4 ( KTR_CXGB , " " , __func__ , lctx -> stid , lctx , lctx -> inp ) ; free_stid ( & td -> tid_maps , lctx -> stid ) ; free ( lctx , M_CXGB ) ; return in_pcbrele_wlocked ( inp ) ; }
Don't call this directly, use release_lctx instead
Don ' t call this directly use release_lctx instead