mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 16:46:15 -04:00
qcacld-3.0: Connection fails due to reassociation in progress
Below are the scenarios where host fails to clear roam in progress flag: Case 1: While processing disconnection request Host should clear roam in progress flag irrespective of connection state of STA. case 2: While processing a try-disconnect request Currently, Host waits for WLAN_WAIT_TIME_STOP_ROAM (4 sec) to process disconnection, if firmware has already started roaming. In case if Host doesn't receive roam completion indication from fw, Host set connection state to not connected and fails to clear roaming in progress flag. This results host refuses all further connection request with reason connection in progress. Fix is to clear roaming_in_progress flag in both cases. Change-Id: I45d9771bcd546d8914321e3be1a6d0ce6566cdac CRs-Fixed: 2588803
This commit is contained in:
parent
4a63087564
commit
0c6565b815
2 changed files with 11 additions and 5 deletions
|
|
@ -1878,11 +1878,13 @@ static QDF_STATUS hdd_dis_connect_handler(struct hdd_adapter *adapter,
|
|||
* eConnectionState_Connecting state mean that connection is in
|
||||
* progress so no need to set state to eConnectionState_NotConnected
|
||||
*/
|
||||
if ((eConnectionState_Connecting != sta_ctx->conn_info.conn_state)) {
|
||||
if ((eConnectionState_Connecting != sta_ctx->conn_info.conn_state))
|
||||
hdd_conn_set_connection_state(adapter,
|
||||
eConnectionState_NotConnected);
|
||||
hdd_set_roaming_in_progress(false);
|
||||
}
|
||||
|
||||
/* Clear roaming in progress flag */
|
||||
hdd_set_roaming_in_progress(false);
|
||||
|
||||
ucfg_pmo_flush_gtk_offload_req(adapter->vdev);
|
||||
|
||||
if ((QDF_STA_MODE == adapter->device_mode) ||
|
||||
|
|
|
|||
|
|
@ -20393,8 +20393,10 @@ int wlan_hdd_try_disconnect(struct hdd_adapter *adapter)
|
|||
&adapter->roaming_comp_var,
|
||||
msecs_to_jiffies(WLAN_WAIT_TIME_STOP_ROAM));
|
||||
if (!rc) {
|
||||
hdd_err("roaming comp var timed out vdev id: %d",
|
||||
hdd_err("roaming_comp_var time out vdev id: %d",
|
||||
adapter->vdev_id);
|
||||
/* Clear roaming in progress flag */
|
||||
hdd_set_roaming_in_progress(false);
|
||||
}
|
||||
if (adapter->roam_ho_fail) {
|
||||
INIT_COMPLETION(adapter->disconnect_comp_var);
|
||||
|
|
@ -20852,8 +20854,10 @@ int wlan_hdd_disconnect(struct hdd_adapter *adapter, u16 reason)
|
|||
&adapter->roaming_comp_var,
|
||||
msecs_to_jiffies(WLAN_WAIT_TIME_STOP_ROAM));
|
||||
if (!rc) {
|
||||
hdd_err("roaming comp var timed out vdev id: %d",
|
||||
hdd_err("roaming_comp_var time out vdev id: %d",
|
||||
adapter->vdev_id);
|
||||
/* Clear roaming in progress flag */
|
||||
hdd_set_roaming_in_progress(false);
|
||||
}
|
||||
if (adapter->roam_ho_fail) {
|
||||
INIT_COMPLETION(adapter->disconnect_comp_var);
|
||||
|
|
|
|||
Loading…
Reference in a new issue