diff options
author | Felix Fietkau <nbd@openwrt.org> | 2011-07-11 21:02:05 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-07-13 14:49:41 -0400 |
commit | 4e868796bbcbae2f2ea3a828c803686787392b71 (patch) | |
tree | 2227bb3c26b7af758303ea7990b3a5912632731f | |
parent | 6340211c5f4775a52c98052fb5661565f79249fd (diff) |
ath5k: do not call ieee80211_stop_queue for queues not managed by mac80211
Instead of using ieee80211_stop_queue, check the configured tx queue
limit before calling ieee80211_get_buffered_bc.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/ath/ath5k/base.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c index 3b58e008329c..5f055d69b220 100644 --- a/drivers/net/wireless/ath/ath5k/base.c +++ b/drivers/net/wireless/ath/ath5k/base.c | |||
@@ -1554,7 +1554,8 @@ ath5k_tx_queue(struct ieee80211_hw *hw, struct sk_buff *skb, | |||
1554 | goto drop_packet; | 1554 | goto drop_packet; |
1555 | } | 1555 | } |
1556 | 1556 | ||
1557 | if (txq->txq_len >= txq->txq_max) | 1557 | if (txq->txq_len >= txq->txq_max && |
1558 | txq->qnum <= AR5K_TX_QUEUE_ID_DATA_MAX) | ||
1558 | ieee80211_stop_queue(hw, txq->qnum); | 1559 | ieee80211_stop_queue(hw, txq->qnum); |
1559 | 1560 | ||
1560 | spin_lock_irqsave(&sc->txbuflock, flags); | 1561 | spin_lock_irqsave(&sc->txbuflock, flags); |
@@ -1930,6 +1931,10 @@ ath5k_beacon_send(struct ath5k_softc *sc) | |||
1930 | skb = ieee80211_get_buffered_bc(sc->hw, vif); | 1931 | skb = ieee80211_get_buffered_bc(sc->hw, vif); |
1931 | while (skb) { | 1932 | while (skb) { |
1932 | ath5k_tx_queue(sc->hw, skb, sc->cabq); | 1933 | ath5k_tx_queue(sc->hw, skb, sc->cabq); |
1934 | |||
1935 | if (sc->cabq->txq_len >= sc->cabq->txq_max) | ||
1936 | break; | ||
1937 | |||
1933 | skb = ieee80211_get_buffered_bc(sc->hw, vif); | 1938 | skb = ieee80211_get_buffered_bc(sc->hw, vif); |
1934 | } | 1939 | } |
1935 | 1940 | ||