summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReinette Chatre <reinette.chatre@intel.com>2009-09-25 23:24:22 +0200
committerJohn W. Linville <linville@tuxdriver.com>2009-09-28 22:55:04 +0200
commit2814298639619b0aa994fe1aee55438f1e26a2a8 (patch)
tree3b328b313ce9867927757a337da25e1c6883811f
parentiwlwifi: fix debugfs buffer handling (diff)
downloadlinux-2814298639619b0aa994fe1aee55438f1e26a2a8.tar.xz
linux-2814298639619b0aa994fe1aee55438f1e26a2a8.zip
iwlwifi: fix memory leak in command queue handling
Also free the array of command pointers and meta data of each command buffer when command queue is freed. Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-tx.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-tx.c b/drivers/net/wireless/iwlwifi/iwl-tx.c
index a7422e52d883..c18907544701 100644
--- a/drivers/net/wireless/iwlwifi/iwl-tx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-tx.c
@@ -197,6 +197,12 @@ void iwl_cmd_queue_free(struct iwl_priv *priv)
pci_free_consistent(dev, priv->hw_params.tfd_size *
txq->q.n_bd, txq->tfds, txq->q.dma_addr);
+ /* deallocate arrays */
+ kfree(txq->cmd);
+ kfree(txq->meta);
+ txq->cmd = NULL;
+ txq->meta = NULL;
+
/* 0-fill queue descriptor structure */
memset(txq, 0, sizeof(*txq));
}