]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
mac80211: do not advertise HE cap IE if HE disabled
authorShaul Triebitz <shaul.triebitz@intel.com>
Sat, 15 Dec 2018 09:03:20 +0000 (11:03 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 18 Dec 2018 13:19:52 +0000 (14:19 +0100)
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>
net/mac80211/mlme.c

index 8c6a4dc017a50bcfcb7999e92dadf76b2c0e9da3..54e511dbbc12071821a17678c45f25f35dc51835 100644 (file)
@@ -916,6 +916,15 @@ static void ieee80211_send_assoc(struct ieee80211_sub_if_data *sdata)
                ieee80211_add_vht_ie(sdata, skb, sband,
                                     &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))
                ieee80211_add_he_ie(sdata, skb, sband);
 
@@ -3231,16 +3240,6 @@ static bool ieee80211_assoc_success(struct ieee80211_sub_if_data *sdata,
                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) &&
            (!elems.he_cap || !elems.he_operation)) {
                mutex_unlock(&sdata->local->sta_mtx);