mac80211: set QoS capability before changing station state
authorJohannes Berg <johannes.berg@intel.com>
Mon, 30 Mar 2015 13:09:20 +0000 (15:09 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 30 Mar 2015 13:11:01 +0000 (15:11 +0200)
In the upcoming fast-xmit patch, changing station state will
build a header cache based on the station's capabilities, and
as the QoS capability (sta.wme) impacts the header, it needs
to be set before.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/cfg.c

index 301215be59ef0ca1cf798dd8947554d0f7276155..e4dd2fc34de316c1b34a60727928d4f7ac4408e7 100644 (file)
@@ -1059,6 +1059,10 @@ static int sta_apply_parameters(struct ieee80211_local *local,
                }
        }
 
+       if (mask & BIT(NL80211_STA_FLAG_WME) &&
+           local->hw.queues >= IEEE80211_NUM_ACS)
+               sta->sta.wme = set & BIT(NL80211_STA_FLAG_WME);
+
        /* auth flags will be set later for TDLS stations */
        if (!test_sta_flag(sta, WLAN_STA_TDLS_PEER)) {
                ret = sta_apply_auth_flags(local, sta, mask, set);
@@ -1073,10 +1077,6 @@ static int sta_apply_parameters(struct ieee80211_local *local,
                        clear_sta_flag(sta, WLAN_STA_SHORT_PREAMBLE);
        }
 
-       if (mask & BIT(NL80211_STA_FLAG_WME) &&
-           local->hw.queues >= IEEE80211_NUM_ACS)
-               sta->sta.wme = set & BIT(NL80211_STA_FLAG_WME);
-
        if (mask & BIT(NL80211_STA_FLAG_MFP)) {
                sta->sta.mfp = !!(set & BIT(NL80211_STA_FLAG_MFP));
                if (set & BIT(NL80211_STA_FLAG_MFP))