From 60780140751adf3b076331a809ff5c32ff70dcb3 Mon Sep 17 00:00:00 2001 From: Liangwei Dong Date: Mon, 7 Mar 2016 01:07:46 -0500 Subject: 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 --- CORE/SERVICES/WMA/wma.c | 6 ++++++ 1 file changed, 6 insertions(+) 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; -- cgit v1.2.3