FreeBSD/sys/dev/sfxge/sfxge_rx.c
/* Drop the given connection, and add it to the free list. */
Drop the given connection, and add it to the free list.
Drop the given connection and add it to the free list .
static void sfxge_lro_drop(struct sfxge_rxq *rxq, struct sfxge_lro_conn *c)
{
	unsigned bucket;
	KASSERT(!c->mbuf, ("found orphaned mbuf"));
	if (c->next_buf.mbuf != NULL) {
		sfxge_rx_deliver(rxq->sc, &c->next_buf);
		LIST_REMOVE(c, active_link);
	}
	bucket = c->conn_hash & rxq->lro.conns_mask;
	KASSERT(rxq->lro.conns_n[bucket] > 0, ("LRO: bucket fill level wrong"));
	--rxq->lro.conns_n[bucket];
	TAILQ_REMOVE(&rxq->lro.conns[bucket], c, link);
	TAILQ_INSERT_HEAD(&rxq->lro.free_conns, c, link);
}
static void sfxge_lro_drop ( struct sfxge_rxq * rxq , struct sfxge_lro_conn * c ) { unsigned bucket ; KASSERT ( ! c -> mbuf , ( " " ) ) ; if ( c -> next_buf . mbuf != NULL ) { sfxge_rx_deliver ( rxq -> sc , & c -> next_buf ) ; LIST_REMOVE ( c , active_link ) ; } bucket = c -> conn_hash & rxq -> lro . conns_mask ; KASSERT ( rxq -> lro . conns_n [ bucket ] > 0 , ( " " ) ) ; -- rxq -> lro . conns_n [ bucket ] ; TAILQ_REMOVE ( & rxq -> lro . conns [ bucket ] , c , link ) ; TAILQ_INSERT_HEAD ( & rxq -> lro . free_conns , c , link ) ; }
Drop the given connection, and add it to the free list.
Drop the given connection and add it to the free list .