From cd7fa911bfd68c4a8cc90a2421907e0b06f2e8ae Mon Sep 17 00:00:00 2001 From: Pradeep Nemavat Date: Thu, 21 Apr 2011 16:34:56 +0530 Subject: [PATCH] --- yaml --- r: 247167 b: refs/heads/master c: 3a7dbc3b2ac545efac75d4145839eaa7b59d9741 h: refs/heads/master i: 247165: 1181a449b37431bb812390aa1563203a3ee6b5ee 247163: ac1d91e021bdc3746b30532af9c1602005c0eae2 247159: bbfb85678d9294b1af8ee6b3ad5e85dda0ce8ea9 247151: 42fb8d161369ca2db66ce3922c74041d297746b2 247135: 67ef1e4bb9c360d5d051536765f5c3a67292ec78 247103: 09bfc6e24fd2f478b8ebe837e4cf89c68a72df28 247039: 26842f26244e9660586b2337616aabfa1c4be766 v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/mwl8k.c | 20 +++++++------------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/[refs] b/[refs] index 210df0231240..f68e1bd05921 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2624e96ce16bacae0e422d5775eac6d4fc33239a +refs/heads/master: 3a7dbc3b2ac545efac75d4145839eaa7b59d9741 diff --git a/trunk/drivers/net/wireless/mwl8k.c b/trunk/drivers/net/wireless/mwl8k.c index 28ebaec80be6..33da25a349b7 100644 --- a/trunk/drivers/net/wireless/mwl8k.c +++ b/trunk/drivers/net/wireless/mwl8k.c @@ -1666,10 +1666,6 @@ mwl8k_txq_reclaim(struct ieee80211_hw *hw, int index, int limit, int force) processed++; } - if (index < MWL8K_TX_WMM_QUEUES && processed && priv->radio_on && - !mutex_is_locked(&priv->fw_mutex)) - ieee80211_wake_queue(hw, index); - return processed; } @@ -1951,13 +1947,14 @@ mwl8k_txq_xmit(struct ieee80211_hw *hw, int index, struct sk_buff *skb) txq = priv->txq + index; - if (index >= MWL8K_TX_WMM_QUEUES && txq->len >= MWL8K_TX_DESCS) { - /* This is the case in which the tx packet is destined for an - * AMPDU queue and that AMPDU queue is full. Because we don't - * start and stop the AMPDU queues, we must drop these packets. - */ - dev_kfree_skb(skb); + if (txq->len >= MWL8K_TX_DESCS) { + if (start_ba_session) { + spin_lock(&priv->stream_lock); + mwl8k_remove_stream(hw, stream); + spin_unlock(&priv->stream_lock); + } spin_unlock_bh(&priv->tx_lock); + dev_kfree_skb(skb); return; } @@ -1985,9 +1982,6 @@ mwl8k_txq_xmit(struct ieee80211_hw *hw, int index, struct sk_buff *skb) if (txq->tail == MWL8K_TX_DESCS) txq->tail = 0; - if (txq->head == txq->tail && index < MWL8K_TX_WMM_QUEUES) - ieee80211_stop_queue(hw, index); - mwl8k_tx_start(priv); spin_unlock_bh(&priv->tx_lock);