From 13f45e6690701e40d127b94a7598df7af96bc744 Mon Sep 17 00:00:00 2001 From: bings Date: Wed, 22 Aug 2018 11:24:56 +0800 Subject: [PATCH] qcacld-3.0: Always update mgmt encryption type when there is RSN IE If mgmt encryption type is not updated, 11w feature will not be enabled correctly for this association. Mgmt encryption type is always updated through limJoinReqSerDes in the cld2.0, which is removed in cld3.0. In cld3.0 if fast roaming is enabled, mgmt encryption type will be updated through csr_construct_rsn_ie. If fast roaming is not enabled, csr_construct_rsn_ie will not be called and mgmt encryption type will not be updated. Always called csr_construct_rsn_ie in csr_retrieve_rsn_ie to make sure mgmt encryption type is updated. Change-Id: I2d6541dd88a9d1770f4976b9caa32baa70a60ed3 CRs-Fixed: 2300847 --- core/sme/src/csr/csr_util.c | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/core/sme/src/csr/csr_util.c b/core/sme/src/csr/csr_util.c index e5914a4adf59..0e1749dabd6b 100644 --- a/core/sme/src/csr/csr_util.c +++ b/core/sme/src/csr/csr_util.c @@ -4689,28 +4689,8 @@ uint8_t csr_retrieve_rsn_ie(tpAniSirGlobal pMac, uint32_t sessionId, break; } - if (csr_roam_is_fast_roam_enabled(pMac, sessionId)) { - /* If "Legacy Fast Roaming" is enabled ALWAYS rebuild - * the RSN IE from scratch. So it contains the current - * PMK-IDs - */ - cbRsnIe = - csr_construct_rsn_ie(pMac, sessionId, pProfile, - pSirBssDesc, pIes, pRsnIe); - } else if (pProfile->nRSNReqIELength && pProfile->pRSNReqIE) { - /* If you have one started away, re-use it. */ - if (pProfile->nRSNReqIELength <= - DOT11F_IE_RSN_MAX_LEN) { - cbRsnIe = (uint8_t) pProfile->nRSNReqIELength; - qdf_mem_copy(pRsnIe, pProfile->pRSNReqIE, - cbRsnIe); - } else - sme_warn("csr_retrieve_rsn_ie detect invalid RSN IE length (%d)", - pProfile->nRSNReqIELength); - } else - cbRsnIe = csr_construct_rsn_ie(pMac, sessionId, - pProfile, - pSirBssDesc, pIes, pRsnIe); + cbRsnIe = csr_construct_rsn_ie(pMac, sessionId, pProfile, + pSirBssDesc, pIes, pRsnIe); } while (0); return cbRsnIe;