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.
Unified · Split
| @@ -1059,6 +1059,10 @@ static int sta_apply_parameters(struct ieee80211_local *local, · 1058 unmodified lines | |||
| 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, · 8 unmodified lines | |||
| 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)) |