svn commit: r225432 - user/adrian/if_ath_tx/sys/dev/ath
Adrian Chadd
adrian at FreeBSD.org
Wed Sep 7 07:24:47 UTC 2011
Author: adrian
Date: Wed Sep 7 07:24:46 2011
New Revision: 225432
URL: http://svn.freebsd.org/changeset/base/225432
Log:
Correct the retry bit handling during software TX retransmission.
* only update the bit if retries == 0;
* if the retry bit is set, resync the descriptor
Modified:
user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c
Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c
==============================================================================
--- user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c Wed Sep 7 03:00:58 2011 (r225431)
+++ user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c Wed Sep 7 07:24:46 2011 (r225432)
@@ -2533,11 +2533,16 @@ ath_tx_set_retry(struct ath_softc *sc, s
{
struct ieee80211_frame *wh;
+ wh = mtod(bf->bf_m, struct ieee80211_frame *);
+ /* Only update/resync if needed */
+ if (bf->bf_state.bfs_isretried == 0) {
+ wh->i_fc[1] |= IEEE80211_FC1_RETRY;
+ bus_dmamap_sync(sc->sc_dmat, bf->bf_dmamap,
+ BUS_DMASYNC_PREWRITE);
+ }
sc->sc_stats.ast_tx_swretries++;
bf->bf_state.bfs_isretried = 1;
bf->bf_state.bfs_retries ++;
- wh = mtod(bf->bf_m, struct ieee80211_frame *);
- wh->i_fc[1] |= IEEE80211_FC1_RETRY;
}
static struct ath_buf *
More information about the svn-src-user
mailing list