diff options
author | Johannes Berg <johannes.berg@intel.com> | 2015-03-30 09:09:20 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2015-03-30 09:11:01 -0400 |
commit | 2c44be81f0fc147eed9dc63e2601318b2c007aeb (patch) | |
tree | 049a95661b5a245ebca4ae81204f249077079bdd | |
parent | 070e176a758e5c96f112d6fc6c348fe4daef99a5 (diff) |
mac80211: set QoS capability before changing station state
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>
-rw-r--r-- | net/mac80211/cfg.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index 301215be59ef..e4dd2fc34de3 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c | |||
@@ -1059,6 +1059,10 @@ static int sta_apply_parameters(struct ieee80211_local *local, | |||
1059 | } | 1059 | } |
1060 | } | 1060 | } |
1061 | 1061 | ||
1062 | if (mask & BIT(NL80211_STA_FLAG_WME) && | ||
1063 | local->hw.queues >= IEEE80211_NUM_ACS) | ||
1064 | sta->sta.wme = set & BIT(NL80211_STA_FLAG_WME); | ||
1065 | |||
1062 | /* auth flags will be set later for TDLS stations */ | 1066 | /* auth flags will be set later for TDLS stations */ |
1063 | if (!test_sta_flag(sta, WLAN_STA_TDLS_PEER)) { | 1067 | if (!test_sta_flag(sta, WLAN_STA_TDLS_PEER)) { |
1064 | ret = sta_apply_auth_flags(local, sta, mask, set); | 1068 | ret = sta_apply_auth_flags(local, sta, mask, set); |
@@ -1073,10 +1077,6 @@ static int sta_apply_parameters(struct ieee80211_local *local, | |||
1073 | clear_sta_flag(sta, WLAN_STA_SHORT_PREAMBLE); | 1077 | clear_sta_flag(sta, WLAN_STA_SHORT_PREAMBLE); |
1074 | } | 1078 | } |
1075 | 1079 | ||
1076 | if (mask & BIT(NL80211_STA_FLAG_WME) && | ||
1077 | local->hw.queues >= IEEE80211_NUM_ACS) | ||
1078 | sta->sta.wme = set & BIT(NL80211_STA_FLAG_WME); | ||
1079 | |||
1080 | if (mask & BIT(NL80211_STA_FLAG_MFP)) { | 1080 | if (mask & BIT(NL80211_STA_FLAG_MFP)) { |
1081 | sta->sta.mfp = !!(set & BIT(NL80211_STA_FLAG_MFP)); | 1081 | sta->sta.mfp = !!(set & BIT(NL80211_STA_FLAG_MFP)); |
1082 | if (set & BIT(NL80211_STA_FLAG_MFP)) | 1082 | if (set & BIT(NL80211_STA_FLAG_MFP)) |