mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 21:54:34 -04:00
qcacld-3.0: Disassoc peers in SAP mode before stop ap
When the driver gets virtual interface delete, as part of change interface, stop bss cmd is queued, and when the command is processed by LIM layer, it deletes all the peers and sends the disassociation frame. It may happen that at the same time the peer which was associated to the SAP sent a disassoc before it got the same from the SAP. That disassoc frame would also the queued, and processed after the stop bss command is done. When the command of disassoc frame from the peer is processed, the peer is searched in the session, but since the stop bss has already been processed, and the peer is deleted, the driver won't be able to find the peer, hence will drop the command process. Since the command process was dropped, but command was still in the active list, timeout would happen in the serialization module, and the remaining commands in the pending list would not be processed. Fix is to flush all the peers and send disassoc frame before the stop bss cmd is put in a serialization list, to avoid this race condition. Change-Id: Ideefbca5b250a24e29b66122fd32019cf7441f30 CRs-Fixed: 2399221
This commit is contained in:
parent
858e14497a
commit
b7a9f70f2b
1 changed files with 3 additions and 1 deletions
|
|
@ -5494,7 +5494,9 @@ QDF_STATUS hdd_stop_adapter(struct hdd_context *hdd_ctx,
|
|||
}
|
||||
|
||||
wlan_hdd_scan_abort(adapter);
|
||||
|
||||
/* Diassociate with all the peers before stop ap post */
|
||||
if (test_bit(SOFTAP_BSS_STARTED, &adapter->event_flags))
|
||||
wlan_hdd_del_station(adapter);
|
||||
sap_config = &adapter->session.ap.sap_config;
|
||||
wlansap_reset_sap_config_add_ie(sap_config, eUPDATE_IE_ALL);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue