diff options
author | Ben Greear <greearb@candelatech.com> | 2011-01-10 02:11:47 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-01-21 15:32:22 -0500 |
commit | 082f65368991f6bb7499c379754505cb674708b1 (patch) | |
tree | 0d0b1c9e8b074e25d3beb6a54ac67ad9293c3980 | |
parent | 9244f48d0052ae17b4af70bfc46ad544c4c06a50 (diff) |
ath9k: Ensure xmit makes progress.
If the txq->axq_q is empty, the code was breaking out
of the tx_processq logic without checking to see if it should
transmit other queued AMPDU frames (txq->axq_acq).
This patches ensures ath_txq_schedule is called.
This needs review.
Signed-off-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/ath/ath9k/xmit.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c index aa67d641f140..f6de2271b9d4 100644 --- a/drivers/net/wireless/ath/ath9k/xmit.c +++ b/drivers/net/wireless/ath/ath9k/xmit.c | |||
@@ -2005,6 +2005,8 @@ static void ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq) | |||
2005 | spin_lock_bh(&txq->axq_lock); | 2005 | spin_lock_bh(&txq->axq_lock); |
2006 | if (list_empty(&txq->axq_q)) { | 2006 | if (list_empty(&txq->axq_q)) { |
2007 | txq->axq_link = NULL; | 2007 | txq->axq_link = NULL; |
2008 | if (sc->sc_flags & SC_OP_TXAGGR) | ||
2009 | ath_txq_schedule(sc, txq); | ||
2008 | spin_unlock_bh(&txq->axq_lock); | 2010 | spin_unlock_bh(&txq->axq_lock); |
2009 | break; | 2011 | break; |
2010 | } | 2012 | } |