Commit d27121fc authored by Xinming Hu's avatar Xinming Hu Committed by Kalle Valo

mwifiex: get rid of drv_info* adapter variables

We can avoid drv_info_dump and drv_info_size adapter variables.
This info can be passed to mwifiex_upload_device_dump() as parameters
Signed-off-by: default avatarXinming Hu <huxm@marvell.com>
Signed-off-by: default avatarAmitkumar Karwar <akarwar@marvell.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent fb45bd0c
...@@ -1026,7 +1026,7 @@ void mwifiex_multi_chan_resync(struct mwifiex_adapter *adapter) ...@@ -1026,7 +1026,7 @@ void mwifiex_multi_chan_resync(struct mwifiex_adapter *adapter)
} }
EXPORT_SYMBOL_GPL(mwifiex_multi_chan_resync); EXPORT_SYMBOL_GPL(mwifiex_multi_chan_resync);
void mwifiex_drv_info_dump(struct mwifiex_adapter *adapter) int mwifiex_drv_info_dump(struct mwifiex_adapter *adapter, void **drv_info)
{ {
void *p; void *p;
char drv_version[64]; char drv_version[64];
...@@ -1036,21 +1036,17 @@ void mwifiex_drv_info_dump(struct mwifiex_adapter *adapter) ...@@ -1036,21 +1036,17 @@ void mwifiex_drv_info_dump(struct mwifiex_adapter *adapter)
int i, idx; int i, idx;
struct netdev_queue *txq; struct netdev_queue *txq;
struct mwifiex_debug_info *debug_info; struct mwifiex_debug_info *debug_info;
void *drv_info_dump;
if (adapter->drv_info_dump) {
vfree(adapter->drv_info_dump);
adapter->drv_info_dump = NULL;
adapter->drv_info_size = 0;
}
mwifiex_dbg(adapter, MSG, "===mwifiex driverinfo dump start===\n"); mwifiex_dbg(adapter, MSG, "===mwifiex driverinfo dump start===\n");
adapter->drv_info_dump = vzalloc(MWIFIEX_DRV_INFO_SIZE_MAX); /* memory allocate here should be free in mwifiex_upload_device_dump*/
drv_info_dump = vzalloc(MWIFIEX_DRV_INFO_SIZE_MAX);
if (!adapter->drv_info_dump) if (!drv_info_dump)
return; return 0;
p = (char *)(adapter->drv_info_dump); p = (char *)(drv_info_dump);
p += sprintf(p, "driver_name = " "\"mwifiex\"\n"); p += sprintf(p, "driver_name = " "\"mwifiex\"\n");
mwifiex_drv_get_driver_version(adapter, drv_version, mwifiex_drv_get_driver_version(adapter, drv_version,
...@@ -1134,18 +1130,20 @@ void mwifiex_drv_info_dump(struct mwifiex_adapter *adapter) ...@@ -1134,18 +1130,20 @@ void mwifiex_drv_info_dump(struct mwifiex_adapter *adapter)
kfree(debug_info); kfree(debug_info);
} }
adapter->drv_info_size = p - adapter->drv_info_dump;
mwifiex_dbg(adapter, MSG, "===mwifiex driverinfo dump end===\n"); mwifiex_dbg(adapter, MSG, "===mwifiex driverinfo dump end===\n");
*drv_info = drv_info_dump;
return p - drv_info_dump;
} }
EXPORT_SYMBOL_GPL(mwifiex_drv_info_dump); EXPORT_SYMBOL_GPL(mwifiex_drv_info_dump);
void mwifiex_upload_device_dump(struct mwifiex_adapter *adapter) void mwifiex_upload_device_dump(struct mwifiex_adapter *adapter, void *drv_info,
int drv_info_size)
{ {
u8 idx, *dump_data, *fw_dump_ptr; u8 idx, *dump_data, *fw_dump_ptr;
u32 dump_len; u32 dump_len;
dump_len = (strlen("========Start dump driverinfo========\n") + dump_len = (strlen("========Start dump driverinfo========\n") +
adapter->drv_info_size + drv_info_size +
strlen("\n========End dump========\n")); strlen("\n========End dump========\n"));
for (idx = 0; idx < adapter->num_mem_types; idx++) { for (idx = 0; idx < adapter->num_mem_types; idx++) {
...@@ -1175,8 +1173,8 @@ void mwifiex_upload_device_dump(struct mwifiex_adapter *adapter) ...@@ -1175,8 +1173,8 @@ void mwifiex_upload_device_dump(struct mwifiex_adapter *adapter)
strcpy(fw_dump_ptr, "========Start dump driverinfo========\n"); strcpy(fw_dump_ptr, "========Start dump driverinfo========\n");
fw_dump_ptr += strlen("========Start dump driverinfo========\n"); fw_dump_ptr += strlen("========Start dump driverinfo========\n");
memcpy(fw_dump_ptr, adapter->drv_info_dump, adapter->drv_info_size); memcpy(fw_dump_ptr, drv_info, drv_info_size);
fw_dump_ptr += adapter->drv_info_size; fw_dump_ptr += drv_info_size;
strcpy(fw_dump_ptr, "\n========End dump========\n"); strcpy(fw_dump_ptr, "\n========End dump========\n");
fw_dump_ptr += strlen("\n========End dump========\n"); fw_dump_ptr += strlen("\n========End dump========\n");
...@@ -1214,18 +1212,12 @@ void mwifiex_upload_device_dump(struct mwifiex_adapter *adapter) ...@@ -1214,18 +1212,12 @@ void mwifiex_upload_device_dump(struct mwifiex_adapter *adapter)
struct memory_type_mapping *entry = struct memory_type_mapping *entry =
&adapter->mem_type_mapping_tbl[idx]; &adapter->mem_type_mapping_tbl[idx];
if (entry->mem_ptr) { vfree(entry->mem_ptr);
vfree(entry->mem_ptr); entry->mem_ptr = NULL;
entry->mem_ptr = NULL;
}
entry->mem_size = 0; entry->mem_size = 0;
} }
if (adapter->drv_info_dump) { vfree(drv_info);
vfree(adapter->drv_info_dump);
adapter->drv_info_dump = NULL;
adapter->drv_info_size = 0;
}
} }
EXPORT_SYMBOL_GPL(mwifiex_upload_device_dump); EXPORT_SYMBOL_GPL(mwifiex_upload_device_dump);
......
...@@ -994,8 +994,6 @@ struct mwifiex_adapter { ...@@ -994,8 +994,6 @@ struct mwifiex_adapter {
u8 key_api_major_ver, key_api_minor_ver; u8 key_api_major_ver, key_api_minor_ver;
struct memory_type_mapping *mem_type_mapping_tbl; struct memory_type_mapping *mem_type_mapping_tbl;
u8 num_mem_types; u8 num_mem_types;
void *drv_info_dump;
u32 drv_info_size;
bool scan_chan_gap_enabled; bool scan_chan_gap_enabled;
struct sk_buff_head rx_data_q; struct sk_buff_head rx_data_q;
bool mfg_mode; bool mfg_mode;
...@@ -1641,8 +1639,9 @@ void mwifiex_hist_data_add(struct mwifiex_private *priv, ...@@ -1641,8 +1639,9 @@ void mwifiex_hist_data_add(struct mwifiex_private *priv,
u8 mwifiex_adjust_data_rate(struct mwifiex_private *priv, u8 mwifiex_adjust_data_rate(struct mwifiex_private *priv,
u8 rx_rate, u8 ht_info); u8 rx_rate, u8 ht_info);
void mwifiex_drv_info_dump(struct mwifiex_adapter *adapter); int mwifiex_drv_info_dump(struct mwifiex_adapter *adapter, void **drv_info);
void mwifiex_upload_device_dump(struct mwifiex_adapter *adapter); void mwifiex_upload_device_dump(struct mwifiex_adapter *adapter, void *drv_info,
int drv_info_size);
void *mwifiex_alloc_dma_align_buf(int rx_len, gfp_t flags); void *mwifiex_alloc_dma_align_buf(int rx_len, gfp_t flags);
void mwifiex_queue_main_work(struct mwifiex_adapter *adapter); void mwifiex_queue_main_work(struct mwifiex_adapter *adapter);
int mwifiex_get_wakeup_reason(struct mwifiex_private *priv, u16 action, int mwifiex_get_wakeup_reason(struct mwifiex_private *priv, u16 action,
......
...@@ -2715,9 +2715,12 @@ static void mwifiex_pcie_fw_dump(struct mwifiex_adapter *adapter) ...@@ -2715,9 +2715,12 @@ static void mwifiex_pcie_fw_dump(struct mwifiex_adapter *adapter)
static void mwifiex_pcie_device_dump_work(struct mwifiex_adapter *adapter) static void mwifiex_pcie_device_dump_work(struct mwifiex_adapter *adapter)
{ {
mwifiex_drv_info_dump(adapter); int drv_info_size;
void *drv_info;
drv_info_size = mwifiex_drv_info_dump(adapter, &drv_info);
mwifiex_pcie_fw_dump(adapter); mwifiex_pcie_fw_dump(adapter);
mwifiex_upload_device_dump(adapter); mwifiex_upload_device_dump(adapter, drv_info, drv_info_size);
} }
static unsigned long iface_work_flags; static unsigned long iface_work_flags;
......
...@@ -2548,13 +2548,15 @@ static void mwifiex_sdio_generic_fw_dump(struct mwifiex_adapter *adapter) ...@@ -2548,13 +2548,15 @@ static void mwifiex_sdio_generic_fw_dump(struct mwifiex_adapter *adapter)
static void mwifiex_sdio_device_dump_work(struct mwifiex_adapter *adapter) static void mwifiex_sdio_device_dump_work(struct mwifiex_adapter *adapter)
{ {
struct sdio_mmc_card *card = adapter->card; struct sdio_mmc_card *card = adapter->card;
int drv_info_size;
void *drv_info;
mwifiex_drv_info_dump(adapter); drv_info_size = mwifiex_drv_info_dump(adapter, &drv_info);
if (card->fw_dump_enh) if (card->fw_dump_enh)
mwifiex_sdio_generic_fw_dump(adapter); mwifiex_sdio_generic_fw_dump(adapter);
else else
mwifiex_sdio_fw_dump(adapter); mwifiex_sdio_fw_dump(adapter);
mwifiex_upload_device_dump(adapter); mwifiex_upload_device_dump(adapter, drv_info, drv_info_size);
} }
static void mwifiex_sdio_work(struct work_struct *work) static void mwifiex_sdio_work(struct work_struct *work)
......
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