Fix an issue that crept in with the previous descriptor tidyup.

When forming aggregates, the last descriptor was now not being
correctly setup - instead, the "setuplasttxdesc" call was being
handed the first descriptor in the last subframe, rather than the
last descriptor in the last subframe.

This showed up as "bad series0 hwrate" messages, as the final
descriptor just didn't have any of the rate control information
squirreled away.

Tested:
	* AR9280 STA -> 11n AP, iperf TCP
This commit is contained in:
adrian 2012-08-02 20:14:45 +00:00
parent b2c4245d7e
commit 2fc73d062f

View File

@ -515,9 +515,12 @@ ath_tx_setds_11n(struct ath_softc *sc, struct ath_buf *bf_first)
/*
* Setup the last descriptor in the list.
* bf_prev points to the last; bf is NULL here.
*
* bf_first->bf_lastds already points to it; the rate
* control information needs to be squirreled away here
* as well ans clearing the moreaggr/paddelim fields.
*/
ath_hal_setuplasttxdesc(sc->sc_ah, bf_prev->bf_desc,
ath_hal_setuplasttxdesc(sc->sc_ah, bf_first->bf_lastds,
bf_first->bf_desc);
DPRINTF(sc, ATH_DEBUG_SW_TX_AGGR, "%s: end\n", __func__);