ath5k: Don't wake internal queues
authorBruno Randolf <br1@einfach.org>
Tue, 5 Oct 2010 04:27:17 +0000 (13:27 +0900)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 5 Oct 2010 17:37:52 +0000 (13:37 -0400)
We should only wake up queues which mac80211 knows about (queues 0-3). We have
another internal queue ("CAB", queue number 6) which we use for power-saved
frames. When transmitted frames are processed from this queue, we have to make
sure we don't bother mac80211 with waking a queue it doesn't know about.

this fixes:

WARNING: at /home/br1/ath/wireless-testing/net/mac80211/util.c:275
  __ieee80211_wake_queue+0xd6/0xe0 [mac80211]()

Signed-off-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath5k/base.c

index d914a31cb0b6d9d932b0dc3e9790a6a6e476bcae..dad726585637146a62b282f6facce9636cfab57b 100644 (file)
@@ -1711,7 +1711,7 @@ ath5k_tx_processq(struct ath5k_softc *sc, struct ath5k_txq *txq)
                }
        }
        spin_unlock(&txq->lock);
-       if (txq->txq_len < ATH5K_TXQ_LEN_LOW)
+       if (txq->txq_len < ATH5K_TXQ_LEN_LOW && txq->qnum < 4)
                ieee80211_wake_queue(sc->hw, txq->qnum);
 }