diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 09ee3d989540..520327f0857b 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -14112,6 +14112,7 @@ QDF_STATUS csr_roam_set_psk_pmk(struct mac_context *mac, uint32_t sessionId, bool update_to_fw) { struct csr_roam_session *pSession = CSR_GET_SESSION(mac, sessionId); + enum csr_akm_type akm_type; if (!pSession) { sme_err("session %d not found", sessionId); @@ -14126,6 +14127,16 @@ QDF_STATUS csr_roam_set_psk_pmk(struct mac_context *mac, uint32_t sessionId, return QDF_STATUS_SUCCESS; } + akm_type = pSession->connectedProfile.AuthType; + if ((akm_type == eCSR_AUTH_TYPE_FT_RSN || + akm_type == eCSR_AUTH_TYPE_FT_FILS_SHA256 || + akm_type == eCSR_AUTH_TYPE_FT_FILS_SHA384 || + akm_type == eCSR_AUTH_TYPE_FT_SUITEB_EAP_SHA384) && + pSession->connectedProfile.mdid.mdie_present) { + sme_debug("Auth type: %d update the MDID in cache", akm_type); + csr_update_pmk_cache_ft(mac, sessionId, pSession); + } + if (update_to_fw) csr_roam_update_cfg(mac, sessionId, REASON_ROAM_PSK_PMK_CHANGED);