aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-4965.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-4965.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
index 9546582e983f..70c0455b622d 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
@@ -3547,13 +3547,16 @@ static void iwl4965_rx_reply_compressed_ba(struct iwl_priv *priv,
3547 * block-ack window (we assume that they've been successfully 3547 * block-ack window (we assume that they've been successfully
3548 * transmitted ... if not, it's too late anyway). */ 3548 * transmitted ... if not, it's too late anyway). */
3549 if (txq->q.read_ptr != (ba_resp_scd_ssn & 0xff)) { 3549 if (txq->q.read_ptr != (ba_resp_scd_ssn & 0xff)) {
3550 /* calculate mac80211 ampdu sw queue to wake */
3551 int ampdu_q =
3552 scd_flow - IWL_BACK_QUEUE_FIRST_ID + priv->hw->queues;
3550 int freed = iwl4965_tx_queue_reclaim(priv, scd_flow, index); 3553 int freed = iwl4965_tx_queue_reclaim(priv, scd_flow, index);
3551 priv->stations[ba_resp->sta_id]. 3554 priv->stations[ba_resp->sta_id].
3552 tid[ba_resp->tid].tfds_in_queue -= freed; 3555 tid[ba_resp->tid].tfds_in_queue -= freed;
3553 if (iwl4965_queue_space(&txq->q) > txq->q.low_mark && 3556 if (iwl4965_queue_space(&txq->q) > txq->q.low_mark &&
3554 priv->mac80211_registered && 3557 priv->mac80211_registered &&
3555 agg->state != IWL_EMPTYING_HW_QUEUE_DELBA) 3558 agg->state != IWL_EMPTYING_HW_QUEUE_DELBA)
3556 ieee80211_wake_queue(priv->hw, scd_flow); 3559 ieee80211_wake_queue(priv->hw, ampdu_q);
3557 iwl4965_check_empty_hw_queue(priv, ba_resp->sta_id, 3560 iwl4965_check_empty_hw_queue(priv, ba_resp->sta_id,
3558 ba_resp->tid, scd_flow); 3561 ba_resp->tid, scd_flow);
3559 } 3562 }