diff options
author | Reinette Chatre <reinette.chatre@intel.com> | 2009-09-26 01:24:22 +0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-09-29 00:55:04 +0400 |
commit | 2814298639619b0aa994fe1aee55438f1e26a2a8 (patch) | |
tree | 3b328b313ce9867927757a337da25e1c6883811f /drivers/net/wireless/iwlwifi/iwl-tx.c | |
parent | 2fac9717a05fc4b4824422d2c439c1260807c110 (diff) | |
download | linux-2814298639619b0aa994fe1aee55438f1e26a2a8.tar.xz |
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>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-tx.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-tx.c | 6 |
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)); } |