View | Details | Raw Unified | Return to bug 199712
Collapse All | Expand All

(-)sys/dev/usb/wlan/if_rum.c (-9 / +7 lines)
Lines 644-660 Link Here
644
rum_tx_free(struct rum_tx_data *data, int txerr)
644
rum_tx_free(struct rum_tx_data *data, int txerr)
645
{
645
{
646
	struct rum_softc *sc = data->sc;
646
	struct rum_softc *sc = data->sc;
647
	struct mbuf *m;
648
	struct ieee80211_node *ni;
647
649
648
	if (data->m != NULL) {
650
	m = data->m, data->m = NULL;
649
		if (data->m->m_flags & M_TXCB)
651
	ni = data->ni, data->ni = NULL;
650
			ieee80211_process_callback(data->ni, data->m,
651
			    txerr ? ETIMEDOUT : 0);
652
		m_freem(data->m);
653
		data->m = NULL;
654
652
655
		ieee80211_free_node(data->ni);
653
	if (m != NULL)
656
		data->ni = NULL;
654
		ieee80211_tx_complete(ni, m, txerr ? ETIMEDOUT : 0);
657
	}
655
658
	STAILQ_INSERT_TAIL(&sc->tx_free, data, next);
656
	STAILQ_INSERT_TAIL(&sc->tx_free, data, next);
659
	sc->tx_nfree++;
657
	sc->tx_nfree++;
660
}
658
}

Return to bug 199712