qcacld-3.0: Do not allow suspend during roaming

There is a chance that kernel can trigger suspend while reassoc
in progress. If driver allows this suspend, this can result in
two issues:
1. Authentication timeout in supplicant and leads to connection
   failure if reassoc is triggered using reassoc bssid hint.
2. Roam synch timeout in firmware if roaming is triggered from fw.

Add one more check for roaming in progress to fix this issue.

Change-Id: I84a5d6e70e28f98440affb968c0b0bb90e21ac95
CRs-Fixed: 2269316
This commit is contained in:
Padma, Santhosh Kumar
2018-06-29 15:31:25 +05:30
gecommit door nshrivas
bovenliggende 769866eac8
commit 4155278ee6
2 gewijzigde bestanden met toevoegingen van 5 en 2 verwijderingen

Bestand weergeven

@@ -19340,8 +19340,10 @@ static int __wlan_hdd_cfg80211_connect(struct wiphy *wiphy,
* Check if this is reassoc to same bssid, if reassoc is success, return
*/
status = wlan_hdd_reassoc_bssid_hint(adapter, req);
if (!status)
if (!status) {
hdd_set_roaming_in_progress(true);
return status;
}
/* Try disconnecting if already in connected state */
status = wlan_hdd_try_disconnect(adapter);

Bestand weergeven

@@ -1737,7 +1737,8 @@ static int __wlan_hdd_cfg80211_suspend_wlan(struct wiphy *wiphy,
scan_info = &adapter->scan_info;
if (sme_neighbor_middle_of_roaming(mac_handle,
adapter->session_id)) {
adapter->session_id) ||
hdd_is_roaming_in_progress(hdd_ctx)) {
hdd_err("Roaming in progress, do not allow suspend");
wlan_hdd_inc_suspend_stats(hdd_ctx,
SUSPEND_FAIL_ROAM);