Commit 3ec45882 authored by Johannes Berg's avatar Johannes Berg

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: default avatarStanislaw Gruszka <sgruszka@redhat.com>
Reviewed-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent e911ede7
...@@ -458,6 +458,7 @@ struct iwl_trans { ...@@ -458,6 +458,7 @@ struct iwl_trans {
/* The following fields are internal only */ /* The following fields are internal only */
struct kmem_cache *dev_cmd_pool; struct kmem_cache *dev_cmd_pool;
size_t dev_cmd_headroom; size_t dev_cmd_headroom;
char dev_cmd_pool_name[50];
/* pointer to trans specific struct */ /* pointer to trans specific struct */
/*Ensure that this pointer will always be aligned to sizeof pointer */ /*Ensure that this pointer will always be aligned to sizeof pointer */
......
...@@ -2080,7 +2080,6 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev, ...@@ -2080,7 +2080,6 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
{ {
struct iwl_trans_pcie *trans_pcie; struct iwl_trans_pcie *trans_pcie;
struct iwl_trans *trans; struct iwl_trans *trans;
char cmd_pool_name[100];
u16 pci_cmd; u16 pci_cmd;
int err; int err;
...@@ -2178,12 +2177,12 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev, ...@@ -2178,12 +2177,12 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
init_waitqueue_head(&trans->wait_command_queue); init_waitqueue_head(&trans->wait_command_queue);
spin_lock_init(&trans->reg_lock); spin_lock_init(&trans->reg_lock);
snprintf(cmd_pool_name, sizeof(cmd_pool_name), "iwl_cmd_pool:%s", snprintf(trans->dev_cmd_pool_name, sizeof(trans->dev_cmd_pool_name),
dev_name(trans->dev)); "iwl_cmd_pool:%s", dev_name(trans->dev));
trans->dev_cmd_headroom = 0; trans->dev_cmd_headroom = 0;
trans->dev_cmd_pool = trans->dev_cmd_pool =
kmem_cache_create(cmd_pool_name, kmem_cache_create(trans->dev_cmd_pool_name,
sizeof(struct iwl_device_cmd) sizeof(struct iwl_device_cmd)
+ trans->dev_cmd_headroom, + trans->dev_cmd_headroom,
sizeof(void *), sizeof(void *),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment