diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-4965.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-4965.c | 13 |
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"); |