aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Greear <greearb@candelatech.com>2011-01-10 02:11:47 -0500
committerJohn W. Linville <linville@tuxdriver.com>2011-01-21 15:32:22 -0500
commit082f65368991f6bb7499c379754505cb674708b1 (patch)
tree0d0b1c9e8b074e25d3beb6a54ac67ad9293c3980
parent9244f48d0052ae17b4af70bfc46ad544c4c06a50 (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.c2
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 }