diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2011-09-15 14:46:30 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-09-19 15:58:26 -0400 |
commit | 909e9b23e4b1d4a783e8d2e5e2c865b7ebdb0675 (patch) | |
tree | 159399076b9c7aa6b7ca6aae2a7db91343aedfd1 /drivers/net/wireless/iwlwifi/iwl-agn.c | |
parent | 39644e9ac5329dc92d9547976c8f30f18da90097 (diff) |
iwlagn: free the Tx cmd when a non empty Tx queue is freed
When a non-empty Tx queueis freed, the buffer it contains must be
freed too. Since the Tx cmd are now allocated from a pool, the Tx
cmd must be freed too.
This patch avoids to destroy a non-empty pool of Tx cmd.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c index 7f6c58ebbc44..1142d85ea881 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c | |||
@@ -1522,6 +1522,8 @@ static void __iwl_down(struct iwl_priv *priv) | |||
1522 | if (priv->shrd->mac80211_registered) | 1522 | if (priv->shrd->mac80211_registered) |
1523 | ieee80211_stop_queues(priv->hw); | 1523 | ieee80211_stop_queues(priv->hw); |
1524 | 1524 | ||
1525 | iwl_trans_stop_device(trans(priv)); | ||
1526 | |||
1525 | /* Clear out all status bits but a few that are stable across reset */ | 1527 | /* Clear out all status bits but a few that are stable across reset */ |
1526 | priv->shrd->status &= | 1528 | priv->shrd->status &= |
1527 | test_bit(STATUS_RF_KILL_HW, &priv->shrd->status) << | 1529 | test_bit(STATUS_RF_KILL_HW, &priv->shrd->status) << |
@@ -1533,8 +1535,6 @@ static void __iwl_down(struct iwl_priv *priv) | |||
1533 | test_bit(STATUS_EXIT_PENDING, &priv->shrd->status) << | 1535 | test_bit(STATUS_EXIT_PENDING, &priv->shrd->status) << |
1534 | STATUS_EXIT_PENDING; | 1536 | STATUS_EXIT_PENDING; |
1535 | 1537 | ||
1536 | iwl_trans_stop_device(trans(priv)); | ||
1537 | |||
1538 | dev_kfree_skb(priv->beacon_skb); | 1538 | dev_kfree_skb(priv->beacon_skb); |
1539 | priv->beacon_skb = NULL; | 1539 | priv->beacon_skb = NULL; |
1540 | } | 1540 | } |