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.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
index 3297fc7b80bf..89aba76e4a2c 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
@@ -2021,7 +2021,9 @@ static void iwl4965_rx_reply_tx(struct iwl_priv *priv,
2021 IWL_DEBUG_TX_REPLY(priv, "Retry scheduler reclaim scd_ssn " 2021 IWL_DEBUG_TX_REPLY(priv, "Retry scheduler reclaim scd_ssn "
2022 "%d index %d\n", scd_ssn , index); 2022 "%d index %d\n", scd_ssn , index);
2023 freed = iwl_tx_queue_reclaim(priv, txq_id, index); 2023 freed = iwl_tx_queue_reclaim(priv, txq_id, index);
2024 iwl_free_tfds_in_queue(priv, sta_id, tid, freed); 2024 if (qc)
2025 iwl_free_tfds_in_queue(priv, sta_id,
2026 tid, freed);
2025 2027
2026 if (priv->mac80211_registered && 2028 if (priv->mac80211_registered &&
2027 (iwl_queue_space(&txq->q) > txq->q.low_mark) && 2029 (iwl_queue_space(&txq->q) > txq->q.low_mark) &&
@@ -2047,14 +2049,17 @@ static void iwl4965_rx_reply_tx(struct iwl_priv *priv,
2047 tx_resp->failure_frame); 2049 tx_resp->failure_frame);
2048 2050
2049 freed = iwl_tx_queue_reclaim(priv, txq_id, index); 2051 freed = iwl_tx_queue_reclaim(priv, txq_id, index);
2050 iwl_free_tfds_in_queue(priv, sta_id, tid, freed); 2052 if (qc && likely(sta_id != IWL_INVALID_STATION))
2053 iwl_free_tfds_in_queue(priv, sta_id, tid, freed);
2054 else if (sta_id == IWL_INVALID_STATION)
2055 IWL_DEBUG_TX_REPLY(priv, "Station not known\n");
2051 2056
2052 if (priv->mac80211_registered && 2057 if (priv->mac80211_registered &&
2053 (iwl_queue_space(&txq->q) > txq->q.low_mark)) 2058 (iwl_queue_space(&txq->q) > txq->q.low_mark))
2054 iwl_wake_queue(priv, txq_id); 2059 iwl_wake_queue(priv, txq_id);
2055 } 2060 }
2056 2061 if (qc && likely(sta_id != IWL_INVALID_STATION))
2057 iwl_txq_check_empty(priv, sta_id, tid, txq_id); 2062 iwl_txq_check_empty(priv, sta_id, tid, txq_id);
2058 2063
2059 if (iwl_check_bits(status, TX_ABORT_REQUIRED_MSK)) 2064 if (iwl_check_bits(status, TX_ABORT_REQUIRED_MSK))
2060 IWL_ERR(priv, "TODO: Implement Tx ABORT REQUIRED!!!\n"); 2065 IWL_ERR(priv, "TODO: Implement Tx ABORT REQUIRED!!!\n");