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:

committed by
nshrivas

parent
769866eac8
commit
4155278ee6
@@ -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);
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user