summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKomal Seelam <kseelam@qti.qualcomm.com>2014-04-22 17:04:50 +0530
committerAkash Patel <c_akashp@qca.qualcomm.com>2014-04-24 22:16:47 -0700
commit7cb35ea584c6d94fee0197ec5f4e0175f42e51b6 (patch)
treefdaa48414d240d5258b3f7d3b67e3e98e10e2552
parent12a22174103058fedd28db8ff9064166caa3e2b6 (diff)
qcacld: HDD: Fix memory leak in case of driver load failure
adf context is not freed when driver load fails. Fix by freeing adf_ctx when driver load fail. Change-Id: I9976cc4540353a15063f4eb4905fa89e45a0c5e1 CRs-Fixed: 652190
-rw-r--r--CORE/HDD/src/wlan_hdd_main.c6
-rw-r--r--CORE/SERVICES/WMA/wma.c1
2 files changed, 6 insertions, 1 deletions
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index ef8ea5f2ac66..8a62d25b9ed0 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -10826,7 +10826,7 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc)
if(pHddCtx->cfg_ini == NULL)
{
hddLog(VOS_TRACE_LEVEL_FATAL,"%s: Failed kmalloc hdd_config_t",__func__);
- goto err_free_hdd_context;
+ goto err_free_adf_context;
}
vos_mem_zero(pHddCtx->cfg_ini, sizeof( hdd_config_t ));
@@ -11663,6 +11663,10 @@ err_config:
kfree(pHddCtx->cfg_ini);
pHddCtx->cfg_ini= NULL;
+err_free_adf_context:
+#ifdef QCA_WIFI_2_0
+ vos_mem_free(adf_ctx);
+#endif
err_free_hdd_context:
hdd_allow_suspend();
wiphy_free(wiphy) ;
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index b9bd8a2953b2..4650c082462b 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -15971,6 +15971,7 @@ VOS_STATUS wma_mc_process_msg(v_VOID_t *vos_context, vos_msg_t *msg)
case WDA_CLI_SET_CMD:
wma_process_cli_set_cmd(wma_handle,
(wda_cli_set_cmd_t *)msg->bodyptr);
+ vos_mem_free(msg->bodyptr);
break;
#if !defined(REMOVE_PKT_LOG) && !defined(QCA_WIFI_ISOC)
case WDA_PKTLOG_ENABLE_REQ: