diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn-tx.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-tx.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c index 266490d8a39..a709d05c586 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c | |||
@@ -947,7 +947,7 @@ void iwlagn_txq_ctx_reset(struct iwl_priv *priv) | |||
947 | */ | 947 | */ |
948 | void iwlagn_txq_ctx_stop(struct iwl_priv *priv) | 948 | void iwlagn_txq_ctx_stop(struct iwl_priv *priv) |
949 | { | 949 | { |
950 | int ch; | 950 | int ch, txq_id; |
951 | unsigned long flags; | 951 | unsigned long flags; |
952 | 952 | ||
953 | /* Turn off all Tx DMA fifos */ | 953 | /* Turn off all Tx DMA fifos */ |
@@ -966,6 +966,16 @@ void iwlagn_txq_ctx_stop(struct iwl_priv *priv) | |||
966 | iwl_read_direct32(priv, FH_TSSR_TX_STATUS_REG)); | 966 | iwl_read_direct32(priv, FH_TSSR_TX_STATUS_REG)); |
967 | } | 967 | } |
968 | spin_unlock_irqrestore(&priv->lock, flags); | 968 | spin_unlock_irqrestore(&priv->lock, flags); |
969 | |||
970 | if (!priv->txq) | ||
971 | return; | ||
972 | |||
973 | /* Unmap DMA from host system and free skb's */ | ||
974 | for (txq_id = 0; txq_id < priv->hw_params.max_txq_num; txq_id++) | ||
975 | if (txq_id == priv->cmd_queue) | ||
976 | iwl_cmd_queue_unmap(priv); | ||
977 | else | ||
978 | iwl_tx_queue_unmap(priv, txq_id); | ||
969 | } | 979 | } |
970 | 980 | ||
971 | /* | 981 | /* |