summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/hdd/src/wlan_hdd_assoc.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c
index d6060f067b6e..e090491c0a69 100644
--- a/core/hdd/src/wlan_hdd_assoc.c
+++ b/core/hdd/src/wlan_hdd_assoc.c
@@ -1576,6 +1576,9 @@ static QDF_STATUS hdd_roam_set_key_complete_handler(hdd_adapter_t *pAdapter,
bool fConnected = false;
QDF_STATUS qdf_status = QDF_STATUS_E_FAILURE;
hdd_station_ctx_t *pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
+ tHalHandle hal_ctx = WLAN_HDD_GET_HAL_CTX(pAdapter);
+ tpAniSirGlobal mac_ctx = PMAC_STRUCT(hal_ctx);
+
ENTER();
if (NULL == pRoamInfo) {
@@ -1623,10 +1626,23 @@ static QDF_STATUS hdd_roam_set_key_complete_handler(hdd_adapter_t *pAdapter,
* At this time we don't handle the state in detail.
* Related CR: 174048 - TL not in authenticated state
*/
- if (eCSR_ROAM_RESULT_AUTHENTICATED == roamResult)
+ if (eCSR_ROAM_RESULT_AUTHENTICATED == roamResult) {
pHddStaCtx->conn_info.gtk_installed = true;
- else
+ /*
+ * PTK exchange happens in preauthentication
+ * itself if key_mgmt is FT-PSK, ptk_installed
+ * was false as there is no set PTK after
+ * roaming. STA TL state moves to authenticated
+ * only if ptk_installed is true. So, make
+ * ptk_installed to true in case of 11R roaming.
+ */
+ if (csr_neighbor_roam_is11r_assoc(mac_ctx,
+ pAdapter->sessionId))
+ pHddStaCtx->conn_info.ptk_installed =
+ true;
+ } else {
pHddStaCtx->conn_info.ptk_installed = true;
+ }
/* In WPA case move STA to authenticated when
* ptk is installed.Earlier in WEP case STA