mac80211: do not advertise HE cap IE if HE disabled
When disabling HE due to the lack of HT/VHT, do it at an earlier stage to avoid advertising HE capabilities IE. Also, at this point, no need to check if AP supports HE, since it is already checked earlier (in ieee80211_prep_channel). Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
002245ec20
commit
dc7eb0f2c2
|
@ -916,6 +916,15 @@ static void ieee80211_send_assoc(struct ieee80211_sub_if_data *sdata)
|
||||||
ieee80211_add_vht_ie(sdata, skb, sband,
|
ieee80211_add_vht_ie(sdata, skb, sband,
|
||||||
&assoc_data->ap_vht_cap);
|
&assoc_data->ap_vht_cap);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If AP doesn't support HT, mark HE as disabled.
|
||||||
|
* If on the 5GHz band, make sure it supports VHT.
|
||||||
|
*/
|
||||||
|
if (ifmgd->flags & IEEE80211_STA_DISABLE_HT ||
|
||||||
|
(sband->band == NL80211_BAND_5GHZ &&
|
||||||
|
ifmgd->flags & IEEE80211_STA_DISABLE_VHT))
|
||||||
|
ifmgd->flags |= IEEE80211_STA_DISABLE_HE;
|
||||||
|
|
||||||
if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HE))
|
if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HE))
|
||||||
ieee80211_add_he_ie(sdata, skb, sband);
|
ieee80211_add_he_ie(sdata, skb, sband);
|
||||||
|
|
||||||
|
@ -3231,16 +3240,6 @@ static bool ieee80211_assoc_success(struct ieee80211_sub_if_data *sdata,
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* If AP doesn't support HT, or it doesn't have HE mandatory IEs, mark
|
|
||||||
* HE as disabled. If on the 5GHz band, make sure it supports VHT.
|
|
||||||
*/
|
|
||||||
if (ifmgd->flags & IEEE80211_STA_DISABLE_HT ||
|
|
||||||
(sband->band == NL80211_BAND_5GHZ &&
|
|
||||||
ifmgd->flags & IEEE80211_STA_DISABLE_VHT) ||
|
|
||||||
(!elems.he_cap && !elems.he_operation))
|
|
||||||
ifmgd->flags |= IEEE80211_STA_DISABLE_HE;
|
|
||||||
|
|
||||||
if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HE) &&
|
if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HE) &&
|
||||||
(!elems.he_cap || !elems.he_operation)) {
|
(!elems.he_cap || !elems.he_operation)) {
|
||||||
mutex_unlock(&sdata->local->sta_mtx);
|
mutex_unlock(&sdata->local->sta_mtx);
|
||||||
|
|
Loading…
Reference in New Issue