summaryrefslogtreecommitdiffstats
path: root/sys/dev/ath
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2003-10-16 16:13:11 +0000
committersam <sam@FreeBSD.org>2003-10-16 16:13:11 +0000
commit2044616f8e46ab43a26fa3e1fe1ed2d138530d2c (patch)
tree8c86a36abf8813e3abbe85647605c74b33fb60e9 /sys/dev/ath
parent4e2a8e2c7ec1ddfe5417316bb58ef98dc8dbf8ec (diff)
downloadFreeBSD-src-2044616f8e46ab43a26fa3e1fe1ed2d138530d2c.zip
FreeBSD-src-2044616f8e46ab43a26fa3e1fe1ed2d138530d2c.tar.gz
o correct handling of a frame that has too many segments to fit in the
tx descriptor array o while here fix a whitespace nit Obtained from: NetBSD
Diffstat (limited to 'sys/dev/ath')
-rw-r--r--sys/dev/ath/if_ath.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c
index ad419ea..6fc70a0 100644
--- a/sys/dev/ath/if_ath.c
+++ b/sys/dev/ath/if_ath.c
@@ -334,8 +334,8 @@ ath_detach(struct ath_softc *sc)
ath_hal_detach(sc->sc_ah);
ieee80211_ifdetach(ifp);
- ATH_TXBUF_LOCK_DESTROY(sc);
- ATH_TXQ_LOCK_DESTROY(sc);
+ ATH_TXBUF_LOCK_DESTROY(sc);
+ ATH_TXQ_LOCK_DESTROY(sc);
return 0;
}
@@ -1765,7 +1765,10 @@ ath_tx_start(struct ath_softc *sc, struct ieee80211_node *ni, struct ath_buf *bf
error = bus_dmamap_load_mbuf(sc->sc_dmat, bf->bf_dmamap, m0,
ath_mbuf_load_cb, bf,
BUS_DMA_NOWAIT);
- if (error != 0) {
+ if (error == EFBIG) {
+ /* XXX packet requires too many descriptors */
+ bf->bf_nseg = ATH_TXDESC+1;
+ } else if (error != 0) {
sc->sc_stats.ast_tx_busdma++;
m_freem(m0);
return error;
OpenPOWER on IntegriCloud