diff options
Diffstat (limited to 'drivers/net/wireless/iwlegacy/iwl-4965-tx.c')
-rw-r--r-- | drivers/net/wireless/iwlegacy/iwl-4965-tx.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlegacy/iwl-4965-tx.c b/drivers/net/wireless/iwlegacy/iwl-4965-tx.c index 829db91896b0..5c40502f869a 100644 --- a/drivers/net/wireless/iwlegacy/iwl-4965-tx.c +++ b/drivers/net/wireless/iwlegacy/iwl-4965-tx.c | |||
@@ -698,7 +698,7 @@ void iwl4965_txq_ctx_reset(struct iwl_priv *priv) | |||
698 | */ | 698 | */ |
699 | void iwl4965_txq_ctx_stop(struct iwl_priv *priv) | 699 | void iwl4965_txq_ctx_stop(struct iwl_priv *priv) |
700 | { | 700 | { |
701 | int ch; | 701 | int ch, txq_id; |
702 | unsigned long flags; | 702 | unsigned long flags; |
703 | 703 | ||
704 | /* Turn off all Tx DMA fifos */ | 704 | /* Turn off all Tx DMA fifos */ |
@@ -719,6 +719,16 @@ void iwl4965_txq_ctx_stop(struct iwl_priv *priv) | |||
719 | FH_TSSR_TX_STATUS_REG)); | 719 | FH_TSSR_TX_STATUS_REG)); |
720 | } | 720 | } |
721 | spin_unlock_irqrestore(&priv->lock, flags); | 721 | spin_unlock_irqrestore(&priv->lock, flags); |
722 | |||
723 | if (!priv->txq) | ||
724 | return; | ||
725 | |||
726 | /* Unmap DMA from host system and free skb's */ | ||
727 | for (txq_id = 0; txq_id < priv->hw_params.max_txq_num; txq_id++) | ||
728 | if (txq_id == priv->cmd_queue) | ||
729 | iwl_legacy_cmd_queue_unmap(priv); | ||
730 | else | ||
731 | iwl_legacy_tx_queue_unmap(priv, txq_id); | ||
722 | } | 732 | } |
723 | 733 | ||
724 | /* | 734 | /* |