aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/mac80211/cfg.c4
-rw-r--r--net/mac80211/mlme.c11
-rw-r--r--net/mac80211/util.c7
3 files changed, 10 insertions, 12 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 5b8b4460b69f..35b07ea0633a 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -1154,10 +1154,6 @@ static int ieee80211_set_txq_params(struct wiphy *wiphy,
1154 return -EINVAL; 1154 return -EINVAL;
1155 } 1155 }
1156 1156
1157 /* enable WMM or activate new settings */
1158 local->hw.conf.flags |= IEEE80211_CONF_QOS;
1159 drv_config(local, IEEE80211_CONF_CHANGE_QOS);
1160
1161 return 0; 1157 return 0;
1162} 1158}
1163 1159
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index d1962650b254..7a4e4bffbc71 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -698,10 +698,11 @@ void ieee80211_dynamic_ps_timer(unsigned long data)
698 698
699/* MLME */ 699/* MLME */
700static void ieee80211_sta_wmm_params(struct ieee80211_local *local, 700static void ieee80211_sta_wmm_params(struct ieee80211_local *local,
701 struct ieee80211_if_managed *ifmgd, 701 struct ieee80211_sub_if_data *sdata,
702 u8 *wmm_param, size_t wmm_param_len) 702 u8 *wmm_param, size_t wmm_param_len)
703{ 703{
704 struct ieee80211_tx_queue_params params; 704 struct ieee80211_tx_queue_params params;
705 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
705 size_t left; 706 size_t left;
706 int count; 707 int count;
707 u8 *pos, uapsd_queues = 0; 708 u8 *pos, uapsd_queues = 0;
@@ -790,8 +791,8 @@ static void ieee80211_sta_wmm_params(struct ieee80211_local *local,
790 } 791 }
791 792
792 /* enable WMM or activate new settings */ 793 /* enable WMM or activate new settings */
793 local->hw.conf.flags |= IEEE80211_CONF_QOS; 794 sdata->vif.bss_conf.qos = true;
794 drv_config(local, IEEE80211_CONF_CHANGE_QOS); 795 ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_QOS);
795} 796}
796 797
797static u32 ieee80211_handle_bss_capability(struct ieee80211_sub_if_data *sdata, 798static u32 ieee80211_handle_bss_capability(struct ieee80211_sub_if_data *sdata,
@@ -1325,7 +1326,7 @@ static bool ieee80211_assoc_success(struct ieee80211_work *wk,
1325 } 1326 }
1326 1327
1327 if (elems.wmm_param) 1328 if (elems.wmm_param)
1328 ieee80211_sta_wmm_params(local, ifmgd, elems.wmm_param, 1329 ieee80211_sta_wmm_params(local, sdata, elems.wmm_param,
1329 elems.wmm_param_len); 1330 elems.wmm_param_len);
1330 else 1331 else
1331 ieee80211_set_wmm_default(sdata); 1332 ieee80211_set_wmm_default(sdata);
@@ -1597,7 +1598,7 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata,
1597 ieee80211_rx_bss_info(sdata, mgmt, len, rx_status, &elems, 1598 ieee80211_rx_bss_info(sdata, mgmt, len, rx_status, &elems,
1598 true); 1599 true);
1599 1600
1600 ieee80211_sta_wmm_params(local, ifmgd, elems.wmm_param, 1601 ieee80211_sta_wmm_params(local, sdata, elems.wmm_param,
1601 elems.wmm_param_len); 1602 elems.wmm_param_len);
1602 } 1603 }
1603 1604
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index a54cf146ed50..794792177376 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -803,8 +803,8 @@ void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata)
803 803
804 /* after reinitialize QoS TX queues setting to default, 804 /* after reinitialize QoS TX queues setting to default,
805 * disable QoS at all */ 805 * disable QoS at all */
806 local->hw.conf.flags &= ~IEEE80211_CONF_QOS; 806 sdata->vif.bss_conf.qos = sdata->vif.type != NL80211_IFTYPE_STATION;
807 drv_config(local, IEEE80211_CONF_CHANGE_QOS); 807 ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_QOS);
808} 808}
809 809
810void ieee80211_sta_def_wmm_params(struct ieee80211_sub_if_data *sdata, 810void ieee80211_sta_def_wmm_params(struct ieee80211_sub_if_data *sdata,
@@ -1161,7 +1161,8 @@ int ieee80211_reconfig(struct ieee80211_local *local)
1161 BSS_CHANGED_BASIC_RATES | 1161 BSS_CHANGED_BASIC_RATES |
1162 BSS_CHANGED_BEACON_INT | 1162 BSS_CHANGED_BEACON_INT |
1163 BSS_CHANGED_BSSID | 1163 BSS_CHANGED_BSSID |
1164 BSS_CHANGED_CQM; 1164 BSS_CHANGED_CQM |
1165 BSS_CHANGED_QOS;
1165 1166
1166 switch (sdata->vif.type) { 1167 switch (sdata->vif.type) {
1167 case NL80211_IFTYPE_STATION: 1168 case NL80211_IFTYPE_STATION: