diff options
| -rw-r--r-- | core/hdd/src/wlan_hdd_assoc.c | 20 |
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 |
