summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiangwei Dong <liangwei@qti.qualcomm.com>2016-03-07 01:07:46 -0500
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2016-03-08 12:57:47 +0530
commit60780140751adf3b076331a809ff5c32ff70dcb3 (patch)
treefdfa35e5062531429e004db2d610eeae65a56a95
parente96d98054e75cb2742df54ab55b73aa30ce8036f (diff)
qcacld-2.0: Fix tpDeleteBssParams memory leak
"MEMORY_DEBUG" enabled driver shows the tpDeleteBssParams is not freed upon driver unloading in SNS test. This commit fixes this issue by freeing tpDeleteBssParams once no referance to it. Change-Id: I302e24048f6d0c25dc9d191b65a1435883a6c7e7 CRs-Fixed: 985334
-rw-r--r--CORE/SERVICES/WMA/wma.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index 61438357a1b3..7195a8d88b07 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -2209,6 +2209,7 @@ static int wma_vdev_stop_ind(tp_wma_handle wma, u_int8_t *buf)
if (resp_event->vdev_id > wma->max_bssid) {
WMA_LOGE("%s: Invalid vdev_id %d", __func__,
resp_event->vdev_id);
+ vos_mem_free(params);
status = -EINVAL;
goto free_req_msg;
}
@@ -2217,6 +2218,7 @@ static int wma_vdev_stop_ind(tp_wma_handle wma, u_int8_t *buf)
if (iface->handle == NULL) {
WMA_LOGE("%s vdev id %d is already deleted",
__func__, resp_event->vdev_id);
+ vos_mem_free(params);
status = -EINVAL;
goto free_req_msg;
}
@@ -12217,6 +12219,7 @@ void wma_vdev_resp_timer(void *data)
if (tgt_req->vdev_id > wma->max_bssid) {
WMA_LOGE("%s: Invalid vdev_id %d", __func__,
tgt_req->vdev_id);
+ vos_mem_free(params);
vos_timer_stop(&tgt_req->event_timeout);
goto free_tgt_req;
}
@@ -12225,6 +12228,7 @@ void wma_vdev_resp_timer(void *data)
if (iface->handle == NULL) {
WMA_LOGE("%s vdev id %d is already deleted",
__func__, tgt_req->vdev_id);
+ vos_mem_free(params);
vos_timer_stop(&tgt_req->event_timeout);
goto free_tgt_req;
}
@@ -12339,6 +12343,7 @@ void wma_vdev_resp_timer(void *data)
if (!msg) {
WMA_LOGP("%s: Failed to fill vdev request for vdev_id %d",
__func__, tgt_req->vdev_id);
+ vos_mem_free(del_bss_params);
goto error0;
}
@@ -12359,6 +12364,7 @@ void wma_vdev_resp_timer(void *data)
if (wmi_unified_vdev_stop_send(wma->wmi_handle, tgt_req->vdev_id)) {
WMA_LOGP("%s: %d Failed to send vdev stop", __func__, __LINE__);
+ vos_mem_free(del_bss_params);
wma_remove_vdev_req(wma, tgt_req->vdev_id,
WMA_TARGET_REQ_TYPE_VDEV_STOP);
goto error0;