aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2012-07-12 07:56:28 -0400
committerJohannes Berg <johannes.berg@intel.com>2012-07-12 08:37:39 -0400
commit3ec4588231914344834805a6828551cd5c65afd8 (patch)
treeb643426daa1081462708fee9d79a1a25ed43cca4 /drivers/net/wireless/iwlwifi
parente911ede7b7613ce231c8e10db8cb778d16013d33 (diff)
iwlwifi: don't use stack memory for kmem cache name
Since the kmem cache API doesn't internally allocate the name but just points to the name that was passed in we can't use stack memory for it. Move the name into the transport struct. Reported-by: Stanislaw Gruszka <sgruszka@redhat.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-trans.h1
-rw-r--r--drivers/net/wireless/iwlwifi/pcie/trans.c7
2 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans.h b/drivers/net/wireless/iwlwifi/iwl-trans.h
index 867d8e194da4..92576a3e84ef 100644
--- a/drivers/net/wireless/iwlwifi/iwl-trans.h
+++ b/drivers/net/wireless/iwlwifi/iwl-trans.h
@@ -458,6 +458,7 @@ struct iwl_trans {
458 /* The following fields are internal only */ 458 /* The following fields are internal only */
459 struct kmem_cache *dev_cmd_pool; 459 struct kmem_cache *dev_cmd_pool;
460 size_t dev_cmd_headroom; 460 size_t dev_cmd_headroom;
461 char dev_cmd_pool_name[50];
461 462
462 /* pointer to trans specific struct */ 463 /* pointer to trans specific struct */
463 /*Ensure that this pointer will always be aligned to sizeof pointer */ 464 /*Ensure that this pointer will always be aligned to sizeof pointer */
diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c
index 203d575e4493..69bf6156fdf6 100644
--- a/drivers/net/wireless/iwlwifi/pcie/trans.c
+++ b/drivers/net/wireless/iwlwifi/pcie/trans.c
@@ -2080,7 +2080,6 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
2080{ 2080{
2081 struct iwl_trans_pcie *trans_pcie; 2081 struct iwl_trans_pcie *trans_pcie;
2082 struct iwl_trans *trans; 2082 struct iwl_trans *trans;
2083 char cmd_pool_name[100];
2084 u16 pci_cmd; 2083 u16 pci_cmd;
2085 int err; 2084 int err;
2086 2085
@@ -2178,12 +2177,12 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
2178 init_waitqueue_head(&trans->wait_command_queue); 2177 init_waitqueue_head(&trans->wait_command_queue);
2179 spin_lock_init(&trans->reg_lock); 2178 spin_lock_init(&trans->reg_lock);
2180 2179
2181 snprintf(cmd_pool_name, sizeof(cmd_pool_name), "iwl_cmd_pool:%s", 2180 snprintf(trans->dev_cmd_pool_name, sizeof(trans->dev_cmd_pool_name),
2182 dev_name(trans->dev)); 2181 "iwl_cmd_pool:%s", dev_name(trans->dev));
2183 2182
2184 trans->dev_cmd_headroom = 0; 2183 trans->dev_cmd_headroom = 0;
2185 trans->dev_cmd_pool = 2184 trans->dev_cmd_pool =
2186 kmem_cache_create(cmd_pool_name, 2185 kmem_cache_create(trans->dev_cmd_pool_name,
2187 sizeof(struct iwl_device_cmd) 2186 sizeof(struct iwl_device_cmd)
2188 + trans->dev_cmd_headroom, 2187 + trans->dev_cmd_headroom,
2189 sizeof(void *), 2188 sizeof(void *),