aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/util.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2012-03-02 09:56:59 -0500
committerJohn W. Linville <linville@tuxdriver.com>2012-03-05 15:53:46 -0500
commit3abead59fcdeb56df8b83288a2f5edbe6423b0bb (patch)
treedd9ee248d46e9a7fe6e583507bebc93015b8e4d6 /net/mac80211/util.c
parent293702a3fb75832613e2af097bdc3ac8ef775b33 (diff)
mac80211: combine QoS with other BSS changes
When associating and particularly when disassociating there's no need to notify the driver about changes with multiple calls to bss_info_changed, we should combine the QoS enabling/disabling into the same call as otherwise the driver could get confused about QoS suddenly getting disabled while connected. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/util.c')
-rw-r--r--net/mac80211/util.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index f6e4cef92021..0a5ad95ac8b0 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -737,7 +737,8 @@ void ieee802_11_parse_elems(u8 *start, size_t len,
737 ieee802_11_parse_elems_crc(start, len, elems, 0, 0); 737 ieee802_11_parse_elems_crc(start, len, elems, 0, 0);
738} 738}
739 739
740void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata) 740void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata,
741 bool bss_notify)
741{ 742{
742 struct ieee80211_local *local = sdata->local; 743 struct ieee80211_local *local = sdata->local;
743 struct ieee80211_tx_queue_params qparam; 744 struct ieee80211_tx_queue_params qparam;
@@ -807,7 +808,9 @@ void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata)
807 if (sdata->vif.type != NL80211_IFTYPE_MONITOR) { 808 if (sdata->vif.type != NL80211_IFTYPE_MONITOR) {
808 sdata->vif.bss_conf.qos = 809 sdata->vif.bss_conf.qos =
809 sdata->vif.type != NL80211_IFTYPE_STATION; 810 sdata->vif.type != NL80211_IFTYPE_STATION;
810 ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_QOS); 811 if (bss_notify)
812 ieee80211_bss_info_change_notify(sdata,
813 BSS_CHANGED_QOS);
811 } 814 }
812} 815}
813 816
@@ -829,7 +832,7 @@ void ieee80211_sta_def_wmm_params(struct ieee80211_sub_if_data *sdata,
829 else 832 else
830 sdata->flags &= ~IEEE80211_SDATA_OPERATING_GMODE; 833 sdata->flags &= ~IEEE80211_SDATA_OPERATING_GMODE;
831 834
832 ieee80211_set_wmm_default(sdata); 835 ieee80211_set_wmm_default(sdata, true);
833} 836}
834 837
835u32 ieee80211_mandatory_rates(struct ieee80211_local *local, 838u32 ieee80211_mandatory_rates(struct ieee80211_local *local,