diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/cfg.c | 4 | ||||
-rw-r--r-- | net/mac80211/mlme.c | 11 | ||||
-rw-r--r-- | net/mac80211/util.c | 7 |
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 */ |
700 | static void ieee80211_sta_wmm_params(struct ieee80211_local *local, | 700 | static 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 | ||
797 | static u32 ieee80211_handle_bss_capability(struct ieee80211_sub_if_data *sdata, | 798 | static 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 | ||
810 | void ieee80211_sta_def_wmm_params(struct ieee80211_sub_if_data *sdata, | 810 | void 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: |