qcacld-3.0: Issue LFR2.0 connect only in proper CSR state
In DBS, LFR 2.0 takes more time to complete the roaming sequence due to DBS config changes through policy manager. If roaming is in progress and cfg80211 issues disconnect, disconnect handler is supposed to wait for 4 sec before processing. In some DBS scenarios, 4 sec wait timer can expire and disconnect proceed for clean up before the roaming sequence can complete, results in race condition. Thus adding CSR state check before proceeding with LFR issue connect. Change-Id: I794c6bf3f749bba9c339fd18b5202d50091b73a7 CRs-Fixed: 2481706
This commit is contained in:
parent
f40d6e75de
commit
f2e2dc1523
@ -9482,6 +9482,13 @@ QDF_STATUS csr_continue_lfr2_connect(struct mac_context *mac,
|
||||
if (!scan_handle_roam_ap)
|
||||
goto POST_ROAM_FAILURE;
|
||||
|
||||
if ((mac->roam.roamSession[session_id].connectState ==
|
||||
eCSR_ASSOC_STATE_TYPE_NOT_CONNECTED) ||
|
||||
(mac->roam.roamSession[session_id].connectState ==
|
||||
eCSR_ASSOC_STATE_TYPE_INFRA_DISCONNECTING)) {
|
||||
goto purge_scan_result;
|
||||
}
|
||||
|
||||
status = csr_roam_lfr2_issue_connect(mac, session_id,
|
||||
scan_handle_roam_ap,
|
||||
roam_id);
|
||||
@ -9489,6 +9496,8 @@ QDF_STATUS csr_continue_lfr2_connect(struct mac_context *mac,
|
||||
qdf_mem_free(roam_info);
|
||||
return status;
|
||||
}
|
||||
|
||||
purge_scan_result:
|
||||
csr_scan_result_purge(mac, scan_handle_roam_ap);
|
||||
|
||||
POST_ROAM_FAILURE:
|
||||
|
Loading…
Reference in New Issue
Block a user