ath9k: one more queue stop/start fix
authorFelix Fietkau <nbd@openwrt.org>
Tue, 1 Jun 2010 19:30:32 +0000 (19:30 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Tue, 1 Jun 2010 19:30:32 +0000 (19:30 +0000)
SVN-Revision: 21651

package/mac80211/patches/530-ath9k_queue_fill.patch

index 172fba40096d2ff2f981c3a370c2d67c70354544..d9bedd668f7187ae3494bad77eb8c3df44952679 100644 (file)
        dma_unmap_single(sc->dev, bf->bf_dmacontext, skb->len, DMA_TO_DEVICE);
        ath_tx_complete(sc, skb, bf->aphy, tx_flags);
        ath_debug_stat_tx(sc, txq, bf, ts);
+@@ -2060,8 +2048,7 @@ static void ath_wake_mac80211_queue(stru
+       int qnum;
+       spin_lock_bh(&txq->axq_lock);
+-      if (txq->stopped &&
+-          sc->tx.txq[txq->axq_qnum].axq_depth <= (ATH_TXBUF - 20)) {
++      if (txq->stopped && txq->pending_frames < ATH_MAX_QDEPTH) {
+               qnum = ath_get_mac80211_qnum(txq->axq_qnum, sc);
+               if (qnum != -1) {
+                       ath_mac80211_start_queue(sc, qnum);
 --- a/drivers/net/wireless/ath/ath9k/main.c
 +++ b/drivers/net/wireless/ath/ath9k/main.c
 @@ -1026,6 +1026,7 @@ static int ath9k_tx(struct ieee80211_hw