From bb309c2681cc9ea5f2b88cfa6eb121d620bd7b1c Mon Sep 17 00:00:00 2001 From: Srikanth Marepalli Date: Tue, 1 Jun 2021 14:06:38 +0530 Subject: [PATCH] qcacld-3.0: CCX roam fails due to invalid KRK and BTK Keys Currently the KRK and BTK Keys are not copied from the supplicant to the buffer in RSO command. Hence the NULL KRK and BTK keys are generating invalid MIC key in Firmware for CCX roaming. And so the CCX roam fails. This fix copies the valid KRK and BTK keys from Session to the ese structure in the RSO command. Change-Id: I2f567f75dd74189becb40ec9a1f906ab0d870584 CRs-Fixed: 2958938 --- core/sme/src/csr/csr_api_roam.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index e56173408cf9..0d97000b9b4f 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -18124,6 +18124,17 @@ csr_cm_update_rso_ese_info(struct mac_context *mac, akm == eCSR_AUTH_TYPE_OPEN_SYSTEM) || (csr_is_auth_type_ese(akm)); rso_config->rso_11r_info.is_11r_assoc = roam_info->is11rAssoc; + if (rso_config->rso_ese_info.is_ese_assoc) { + qdf_mem_copy(rso_config->rso_ese_info.krk, + session->eseCckmInfo.krk, WMI_KRK_KEY_LEN); + qdf_mem_copy(rso_config->rso_ese_info.btk, + session->eseCckmInfo.btk, WMI_BTK_KEY_LEN); + rso_config->rso_11i_info.fw_okc = false; + rso_config->rso_11i_info.fw_pmksa_cache = false; + rso_config->rso_11i_info.pmk_len = 0; + qdf_mem_zero(&rso_config->rso_11i_info.psk_pmk[0], + sizeof(rso_config->rso_11i_info.psk_pmk)); + } } #else static inline void