qcacld-3.0: Fix the EHT MCS map in the per-STA profile

EHT MCS map is not populated correctly in the per-STA profile
data in association request MLO IE leading to connection fail.

Fix the EHT MCS map in the MLO IE per-STA profile data.

Change-Id: I3b73e65fccddf877e832147795d0912744055934
CRs-Fixed: 3287371
Esse commit está contido em:
Kiran Kumar Lokere
2022-09-22 10:15:08 -07:00
commit de Madan Koyyalamudi
commit 5939fe53b1

Ver arquivo

@@ -11030,6 +11030,7 @@ QDF_STATUS populate_dot11f_assoc_req_mlo_ie(struct mac_context *mac_ctx,
bool is_2g;
uint32_t value = 0;
uint8_t *ppet;
uint8_t *eht_cap_ie = NULL;
if (!mac_ctx || !pe_session || !frm)
return QDF_STATUS_E_NULL_VALUE;
@@ -11454,11 +11455,21 @@ QDF_STATUS populate_dot11f_assoc_req_mlo_ie(struct mac_context *mac_ctx,
if ((eht_caps.present && frm->eht_cap.present &&
qdf_mem_cmp(&eht_caps, &frm->eht_cap, sizeof(eht_caps))) ||
(eht_caps.present && !frm->eht_cap.present)) {
len_consumed = 0;
dot11f_pack_ie_eht_cap(mac_ctx, &eht_caps, p_sta_prof,
len_remaining, &len_consumed);
p_sta_prof += len_consumed;
len_remaining -= len_consumed;
eht_cap_ie = qdf_mem_malloc(WLAN_MAX_IE_LEN + 2);
if (eht_cap_ie) {
len_consumed = 0;
lim_ieee80211_pack_ehtcap(eht_cap_ie, eht_caps,
he_caps, is_2g);
len_consumed = eht_cap_ie[1] + 2;
qdf_mem_copy(p_sta_prof, eht_cap_ie,
len_consumed);
qdf_mem_free(eht_cap_ie);
p_sta_prof += len_consumed;
len_remaining -= len_consumed;
} else {
pe_err("malloc failed for eht_cap_ie");
}
} else if (frm->eht_cap.present && !eht_caps.present) {
non_inher_ext_ie_lists[non_inher_ext_len++] =
WLAN_EXTN_ELEMID_EHTCAP;