Ver Fonte

qcacld-3.0: Reset hdd_reassoc_scenario flag on disconnection

After successful roam synch indication received in 802.1x/WPA3
security roaming, the peer will not be in authorized state since
EAP/EAPOL handshake is handled at the supplicant. Simultaneously
there is continuous vdev pause/unpause events from firmware, so
EAP handshake fails and EAP timeout kicks-in at supplicant and
disconnect is triggered. But on new connection the
hdd_reassoc_scenario flag is not reset, so
__wlan_hdd_cfg80211_ll_stats_get always returns failure and the
framework displays low rssi even though the connected AP rssi
is good.

Reset the hdd_reassoc_scenario flag after any disconnection.

Change-Id: I7b00fef86fa37d6e7ab857be1750add142f7e647
CRs-Fixed: 2752022
Pragaspathi Thilagaraj há 4 anos atrás
pai
commit
39f2441cfa
1 ficheiros alterados com 8 adições e 0 exclusões
  1. 8 0
      core/hdd/src/wlan_hdd_assoc.c

+ 8 - 0
core/hdd/src/wlan_hdd_assoc.c

@@ -1988,6 +1988,14 @@ static QDF_STATUS hdd_dis_connect_handler(struct hdd_adapter *adapter,
 	policy_mgr_check_concurrent_intf_and_restart_sap(hdd_ctx->psoc);
 	adapter->hdd_stats.tx_rx_stats.cont_txtimeout_cnt = 0;
 
+	/*
+	 * Reset hdd_reassoc_scenario to false here. After roaming in
+	 * 802.1x or WPA3 security, EAPOL is handled at supplicant and
+	 * the hdd_reassoc_scenario flag will not be reset if disconnection
+	 * happens before EAP/EAPOL at supplicant is complete.
+	 */
+	sta_ctx->hdd_reassoc_scenario = false;
+
 	/* Unblock anyone waiting for disconnect to complete */
 	complete(&adapter->disconnect_comp_var);