aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/mwl8k.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/drivers/net/wireless/mwl8k.c b/drivers/net/wireless/mwl8k.c
index 28ebaec80be6..33da25a349b7 100644
--- a/drivers/net/wireless/mwl8k.c
+++ b/drivers/net/wireless/mwl8k.c
@@ -1666,10 +1666,6 @@ mwl8k_txq_reclaim(struct ieee80211_hw *hw, int index, int limit, int force)
1666 processed++; 1666 processed++;
1667 } 1667 }
1668 1668
1669 if (index < MWL8K_TX_WMM_QUEUES && processed && priv->radio_on &&
1670 !mutex_is_locked(&priv->fw_mutex))
1671 ieee80211_wake_queue(hw, index);
1672
1673 return processed; 1669 return processed;
1674} 1670}
1675 1671
@@ -1951,13 +1947,14 @@ mwl8k_txq_xmit(struct ieee80211_hw *hw, int index, struct sk_buff *skb)
1951 1947
1952 txq = priv->txq + index; 1948 txq = priv->txq + index;
1953 1949
1954 if (index >= MWL8K_TX_WMM_QUEUES && txq->len >= MWL8K_TX_DESCS) { 1950 if (txq->len >= MWL8K_TX_DESCS) {
1955 /* This is the case in which the tx packet is destined for an 1951 if (start_ba_session) {
1956 * AMPDU queue and that AMPDU queue is full. Because we don't 1952 spin_lock(&priv->stream_lock);
1957 * start and stop the AMPDU queues, we must drop these packets. 1953 mwl8k_remove_stream(hw, stream);
1958 */ 1954 spin_unlock(&priv->stream_lock);
1959 dev_kfree_skb(skb); 1955 }
1960 spin_unlock_bh(&priv->tx_lock); 1956 spin_unlock_bh(&priv->tx_lock);
1957 dev_kfree_skb(skb);
1961 return; 1958 return;
1962 } 1959 }
1963 1960
@@ -1985,9 +1982,6 @@ mwl8k_txq_xmit(struct ieee80211_hw *hw, int index, struct sk_buff *skb)
1985 if (txq->tail == MWL8K_TX_DESCS) 1982 if (txq->tail == MWL8K_TX_DESCS)
1986 txq->tail = 0; 1983 txq->tail = 0;
1987 1984
1988 if (txq->head == txq->tail && index < MWL8K_TX_WMM_QUEUES)
1989 ieee80211_stop_queue(hw, index);
1990
1991 mwl8k_tx_start(priv); 1985 mwl8k_tx_start(priv);
1992 1986
1993 spin_unlock_bh(&priv->tx_lock); 1987 spin_unlock_bh(&priv->tx_lock);