|
@@ -6740,7 +6740,7 @@ void lim_intersect_ap_he_caps(struct pe_session *session, struct bss_params *add
|
|
|
tDot11fIEhe_cap *session_he = &session->he_config;
|
|
|
tDot11fIEhe_cap *peer_he = &add_bss->staContext.he_config;
|
|
|
|
|
|
- if (assoc_rsp)
|
|
|
+ if (assoc_rsp && assoc_rsp->he_cap.present)
|
|
|
rcvd_he = &assoc_rsp->he_cap;
|
|
|
else
|
|
|
rcvd_he = &beacon->he_cap;
|
|
@@ -6860,13 +6860,17 @@ void lim_update_stads_he_caps(struct mac_context *mac_ctx,
|
|
|
|
|
|
he_cap = &assoc_rsp->he_cap;
|
|
|
|
|
|
- if (assoc_rsp->he_cap.present)
|
|
|
+ if (assoc_rsp->he_cap.present) {
|
|
|
he_cap = &assoc_rsp->he_cap;
|
|
|
- /* Use beacon HE caps if assoc resp doesn't have he caps */
|
|
|
- else if (beacon && beacon->he_cap.present)
|
|
|
+ } else if (beacon && beacon->he_cap.present) {
|
|
|
+ /* Use beacon HE caps if assoc resp doesn't have he caps */
|
|
|
+ pe_debug("he_caps missing in assoc rsp");
|
|
|
he_cap = &beacon->he_cap;
|
|
|
- else
|
|
|
+ qdf_mem_copy(&assoc_rsp->he_cap, &beacon->he_cap,
|
|
|
+ sizeof(*he_cap));
|
|
|
+ } else {
|
|
|
return;
|
|
|
+ }
|
|
|
|
|
|
sta_ds->mlmStaContext.he_capable = he_cap->present;
|
|
|
|