summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVarun Reddy Yeturu <varunreddy.yeturu@codeaurora.org>2017-10-27 15:37:31 -0700
committerVarun Reddy Yeturu <varunreddy.yeturu@codeaurora.org>2017-10-27 15:37:31 -0700
commit1fac7787a708686e11397f31abc60237c1ec775b (patch)
tree914654e856f58d97fe59b67f9c54f14e542d638a
parent37014423004dba623df1cfa234913efe34d6846b (diff)
qcacld-3.0: Free memory allocated for del sta params
Identify all the places where memory is not free'd in case of WMA delete STA request and free it. Change-Id: I97db2595d0b1d96bcbf97a28e9e1345504b30239 CRs-Fixed: 2133514
-rw-r--r--core/wma/src/wma_dev_if.c9
-rw-r--r--core/wma/src/wma_nan_datapath.c4
-rw-r--r--core/wma/src/wma_scan_roam.c1
3 files changed, 12 insertions, 2 deletions
diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c
index b837a0d52b33..9fc1ff89c0b2 100644
--- a/core/wma/src/wma_dev_if.c
+++ b/core/wma/src/wma_dev_if.c
@@ -4931,8 +4931,12 @@ void wma_delete_sta(tp_wma_handle wma, tpDeleteStaParams del_sta)
switch (oper_mode) {
case BSS_OPERATIONAL_MODE_STA:
wma_delete_sta_req_sta_mode(wma, del_sta);
- if (wma_is_roam_synch_in_progress(wma, smesession_id))
+ if (wma_is_roam_synch_in_progress(wma, smesession_id)) {
+ WMA_LOGD(FL("LFR3: Del STA on vdev_id %d"),
+ del_sta->smesessionId);
+ qdf_mem_free(del_sta);
return;
+ }
if (!rsp_requested) {
WMA_LOGD(FL("vdev_id %d status %d"),
del_sta->smesessionId, del_sta->status);
@@ -4961,6 +4965,9 @@ void wma_delete_sta(tp_wma_handle wma, tpDeleteStaParams del_sta)
case BSS_OPERATIONAL_MODE_NDI:
wma_delete_sta_req_ndi_mode(wma, del_sta);
break;
+ default:
+ WMA_LOGE(FL("Incorrect oper mode %d"), oper_mode);
+ qdf_mem_free(del_sta);
}
#ifdef QCA_IBSS_SUPPORT
diff --git a/core/wma/src/wma_nan_datapath.c b/core/wma/src/wma_nan_datapath.c
index ee3ff60857ae..a33c75193c0d 100644
--- a/core/wma/src/wma_nan_datapath.c
+++ b/core/wma/src/wma_nan_datapath.c
@@ -1325,6 +1325,10 @@ send_del_rsp:
WMA_LOGD(FL("Sending del rsp to umac (status: %d)"),
del_sta->status);
wma_send_msg_high_priority(wma, WMA_DELETE_STA_RSP, del_sta, 0);
+ } else {
+ WMA_LOGD(FL("NDI Del Sta resp not needed"));
+ qdf_mem_free(del_sta);
}
+
}
diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c
index 877b02546560..de7738e8d44a 100644
--- a/core/wma/src/wma_scan_roam.c
+++ b/core/wma/src/wma_scan_roam.c
@@ -2661,7 +2661,6 @@ static void wma_roam_update_vdev(tp_wma_handle wma,
qdf_mem_copy(wma->interfaces[vdev_id].bssid,
roam_synch_ind_ptr->bssid.bytes, IEEE80211_ADDR_LEN);
qdf_mem_free(del_bss_params);
- qdf_mem_free(del_sta_params);
qdf_mem_free(set_link_params);
qdf_mem_free(add_sta_params);
}