mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-12 15:49:17 -04:00
qcacld-3.0: Free ACS channel list before allocating new list
In __wlan_hdd_cfg80211_do_acs(), driver allocates memory for ACS channel list without checking if there is already some memory allocated for channel list or not. When SSR is triggered before ACS completion, ACS list does not get freed and after driver reinit, when a new do ACS comes, it allocates a new memory without deallocating the older memory. This causes memory leak. Free ACS channel list if already allocated before allocate a new list. Change-Id: Ic001c3daac518e97644da00cb82ea1d3fde4b539 CRs-Fixed: 2191839
This commit is contained in:
parent
db40093ed3
commit
1b3be70ff7
2 changed files with 4 additions and 6 deletions
|
|
@ -2603,6 +2603,8 @@ static int __wlan_hdd_cfg80211_do_acs(struct wiphy *wiphy,
|
|||
* hw_mode = any: only QCA_WLAN_VENDOR_ATTR_ACS_FREQ_LIST attr
|
||||
* is present
|
||||
*/
|
||||
|
||||
wlan_hdd_undo_acs(adapter);
|
||||
if (tb[QCA_WLAN_VENDOR_ATTR_ACS_CH_LIST]) {
|
||||
char *tmp = nla_data(tb[QCA_WLAN_VENDOR_ATTR_ACS_CH_LIST]);
|
||||
|
||||
|
|
|
|||
|
|
@ -6313,7 +6313,7 @@ QDF_STATUS hdd_init_ap_mode(struct hdd_adapter *adapter, bool reinit)
|
|||
|
||||
if (!reinit) {
|
||||
adapter->session.ap.sap_config.acs_cfg.acs_mode = false;
|
||||
qdf_mem_free(adapter->session.ap.sap_config.acs_cfg.ch_list);
|
||||
wlan_hdd_undo_acs(adapter);
|
||||
qdf_mem_zero(&adapter->session.ap.sap_config.acs_cfg,
|
||||
sizeof(struct sap_acs_cfg));
|
||||
}
|
||||
|
|
@ -8269,11 +8269,7 @@ int wlan_hdd_cfg80211_start_bss(struct hdd_adapter *adapter,
|
|||
|
||||
error:
|
||||
clear_bit(SOFTAP_INIT_DONE, &adapter->event_flags);
|
||||
if (adapter->session.ap.sap_config.acs_cfg.ch_list) {
|
||||
qdf_mem_free(adapter->session.ap.sap_config.
|
||||
acs_cfg.ch_list);
|
||||
adapter->session.ap.sap_config.acs_cfg.ch_list = NULL;
|
||||
}
|
||||
wlan_hdd_undo_acs(adapter);
|
||||
|
||||
free:
|
||||
qdf_mem_free(sme_config);
|
||||
|
|
|
|||
Loading…
Reference in a new issue