Index: if_ath_tx.c =================================================================== --- if_ath_tx.c (revision 239916) +++ if_ath_tx.c (working copy) @@ -2528,6 +2528,15 @@ return; } + if (bf->bf_state.bfs_aggr != 0 || bf->bf_state.bfs_nframes > 1) + device_printf(sc->sc_dev, "%s: bfs_aggr=%d, bfs_nframes=%d\n", + __func__, + bf->bf_state.bfs_aggr, + bf->bf_state.bfs_nframes); + + bf->bf_state.bfs_aggr = 0; + bf->bf_state.bfs_nframes = 1; + /* Direct dispatch to hardware */ ath_tx_do_ratelookup(sc, bf); ath_tx_calc_duration(sc, bf); @@ -4018,7 +4027,16 @@ "%s: non-baw packet\n", __func__); ATH_TXQ_REMOVE(tid, bf, bf_list); + + if (bf->bf_state.bfs_nframes > 1) + device_printf(sc->sc_dev, + "%s: aggr=%d, nframes=%d\n", + __func__, + bf->bf_state.bfs_aggr, + bf->bf_state.bfs_nframes); + bf->bf_state.bfs_aggr = 0; + bf->bf_state.bfs_nframes = 1; ath_tx_do_ratelookup(sc, bf); ath_tx_calc_duration(sc, bf); ath_tx_calc_protection(sc, bf);