diff --git a/core/mac/src/pe/lim/lim_utils.c b/core/mac/src/pe/lim/lim_utils.c index c0beb2fdcd71..7016d98c239e 100644 --- a/core/mac/src/pe/lim/lim_utils.c +++ b/core/mac/src/pe/lim/lim_utils.c @@ -7701,6 +7701,9 @@ void lim_log_he_cap(tpAniSirGlobal mac, tDot11fIEvendor_he_cap *he_cap) lim_log(mac, LOG1, "\tRX BW bitmap: 0x%05x ", he_cap->rx_bw_bitmap); /* HE PPET */ + if (!he_cap->ppet_present) + return; + if (!he_cap->ppe_threshold.present) { lim_log(mac, LOG1, FL("PPET is not present. Invalid IE")); return; diff --git a/core/mac/src/sys/legacy/src/utils/src/parser_api.c b/core/mac/src/sys/legacy/src/utils/src/parser_api.c index c0329755105a..6d83b63a69eb 100644 --- a/core/mac/src/sys/legacy/src/utils/src/parser_api.c +++ b/core/mac/src/sys/legacy/src/utils/src/parser_api.c @@ -6051,14 +6051,25 @@ QDF_STATUS populate_dot11f_he_caps(tpAniSirGlobal mac_ctx, tpPESession session, CFG_GET_INT(status, mac_ctx, WNI_CFG_HE_MCS, value); he_cap->mcs_supported = value; - value = WNI_CFG_HE_PPET_LEN; - CFG_GET_STR(status, mac_ctx, WNI_CFG_HE_PPET, - (void *)&he_cap->ppe_threshold, value, value); + if (he_cap->ppet_present) { + value = WNI_CFG_HE_PPET_LEN; + CFG_GET_STR(status, mac_ctx, WNI_CFG_HE_PPET, + (void *)&he_cap->ppe_threshold, value, value); + } else { + he_cap->ppe_threshold.present = false; + } return QDF_STATUS_SUCCESS; } qdf_mem_copy(he_cap, &session->he_config, sizeof(*he_cap)); + if (he_cap->ppet_present) { + value = WNI_CFG_HE_PPET_LEN; + CFG_GET_STR(status, mac_ctx, WNI_CFG_HE_PPET, + (void *)&he_cap->ppe_threshold, value, value); + } else { + he_cap->ppe_threshold.present = false; + } lim_log_he_cap(mac_ctx, he_cap); diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 9d2731893a61..d5a1f5bc7dd1 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -2342,9 +2342,13 @@ static void csr_update_session_he_cap(tpAniSirGlobal mac_ctx, sme_cfg_get_int(mac_ctx, WNI_CFG_HE_MCS, &value); he_cap->mcs_supported = value; - value = WNI_CFG_HE_PPET_LEN; - sme_cfg_get_str(mac_ctx, WNI_CFG_HE_PPET, + if (he_cap->ppet_present) { + value = WNI_CFG_HE_PPET_LEN; + sme_cfg_get_str(mac_ctx, WNI_CFG_HE_PPET, (void *)&he_cap->ppe_threshold, &value); + } else { + he_cap->ppe_threshold.present = false; + } } #else