summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/mac80211/ibss.c2
-rw-r--r--net/mac80211/ieee80211_i.h2
-rw-r--r--net/mac80211/iface.c8
-rw-r--r--net/mac80211/mlme.c4
-rw-r--r--net/mac80211/util.c11
5 files changed, 11 insertions, 16 deletions
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
index 3b5874e0174f..337bb5d78003 100644
--- a/net/mac80211/ibss.c
+++ b/net/mac80211/ibss.c
@@ -356,7 +356,7 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
356 else 356 else
357 sdata->flags &= ~IEEE80211_SDATA_OPERATING_GMODE; 357 sdata->flags &= ~IEEE80211_SDATA_OPERATING_GMODE;
358 358
359 ieee80211_set_wmm_default(sdata, true); 359 ieee80211_set_wmm_default(sdata, true, false);
360 360
361 sdata->vif.bss_conf.ibss_joined = true; 361 sdata->vif.bss_conf.ibss_joined = true;
362 sdata->vif.bss_conf.ibss_creator = creator; 362 sdata->vif.bss_conf.ibss_creator = creator;
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 5c76ba7aaf57..d832bd59236b 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -1769,7 +1769,7 @@ int ieee80211_frame_duration(enum ieee80211_band band, size_t len,
1769 int rate, int erp, int short_preamble, 1769 int rate, int erp, int short_preamble,
1770 int shift); 1770 int shift);
1771void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata, 1771void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata,
1772 bool bss_notify); 1772 bool bss_notify, bool enable_qos);
1773void ieee80211_xmit(struct ieee80211_sub_if_data *sdata, 1773void ieee80211_xmit(struct ieee80211_sub_if_data *sdata,
1774 struct sta_info *sta, struct sk_buff *skb); 1774 struct sta_info *sta, struct sk_buff *skb);
1775 1775
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index f848c75518a2..d0dc1bfaeec2 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -661,11 +661,13 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
661 } 661 }
662 662
663 /* 663 /*
664 * set default queue parameters so drivers don't 664 * Set default queue parameters so drivers don't
665 * need to initialise the hardware if the hardware 665 * need to initialise the hardware if the hardware
666 * doesn't start up with sane defaults 666 * doesn't start up with sane defaults.
667 * Enable QoS for anything but station interfaces.
667 */ 668 */
668 ieee80211_set_wmm_default(sdata, true); 669 ieee80211_set_wmm_default(sdata, true,
670 sdata->vif.type != NL80211_IFTYPE_STATION);
669 } 671 }
670 672
671 set_bit(SDATA_STATE_RUNNING, &sdata->state); 673 set_bit(SDATA_STATE_RUNNING, &sdata->state);
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 73f1a2a0df5a..67f0387bea27 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -2077,7 +2077,7 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
2077 ieee80211_bss_info_change_notify(sdata, changed); 2077 ieee80211_bss_info_change_notify(sdata, changed);
2078 2078
2079 /* disassociated - set to defaults now */ 2079 /* disassociated - set to defaults now */
2080 ieee80211_set_wmm_default(sdata, false); 2080 ieee80211_set_wmm_default(sdata, false, false);
2081 2081
2082 del_timer_sync(&sdata->u.mgd.conn_mon_timer); 2082 del_timer_sync(&sdata->u.mgd.conn_mon_timer);
2083 del_timer_sync(&sdata->u.mgd.bcn_mon_timer); 2083 del_timer_sync(&sdata->u.mgd.bcn_mon_timer);
@@ -3048,7 +3048,7 @@ static bool ieee80211_assoc_success(struct ieee80211_sub_if_data *sdata,
3048 ieee80211_sta_wmm_params(local, sdata, elems.wmm_param, 3048 ieee80211_sta_wmm_params(local, sdata, elems.wmm_param,
3049 elems.wmm_param_len); 3049 elems.wmm_param_len);
3050 else 3050 else
3051 ieee80211_set_wmm_default(sdata, false); 3051 ieee80211_set_wmm_default(sdata, false, false);
3052 changed |= BSS_CHANGED_QOS; 3052 changed |= BSS_CHANGED_QOS;
3053 3053
3054 /* set AID and assoc capability, 3054 /* set AID and assoc capability,
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index 8802aa4da2a4..74058020b7d6 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -1105,13 +1105,13 @@ u32 ieee802_11_parse_elems_crc(const u8 *start, size_t len, bool action,
1105} 1105}
1106 1106
1107void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata, 1107void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata,
1108 bool bss_notify) 1108 bool bss_notify, bool enable_qos)
1109{ 1109{
1110 struct ieee80211_local *local = sdata->local; 1110 struct ieee80211_local *local = sdata->local;
1111 struct ieee80211_tx_queue_params qparam; 1111 struct ieee80211_tx_queue_params qparam;
1112 struct ieee80211_chanctx_conf *chanctx_conf; 1112 struct ieee80211_chanctx_conf *chanctx_conf;
1113 int ac; 1113 int ac;
1114 bool use_11b, enable_qos; 1114 bool use_11b;
1115 bool is_ocb; /* Use another EDCA parameters if dot11OCBActivated=true */ 1115 bool is_ocb; /* Use another EDCA parameters if dot11OCBActivated=true */
1116 int aCWmin, aCWmax; 1116 int aCWmin, aCWmax;
1117 1117
@@ -1130,13 +1130,6 @@ void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata,
1130 !(sdata->flags & IEEE80211_SDATA_OPERATING_GMODE); 1130 !(sdata->flags & IEEE80211_SDATA_OPERATING_GMODE);
1131 rcu_read_unlock(); 1131 rcu_read_unlock();
1132 1132
1133 /*
1134 * By default disable QoS in STA mode for old access points, which do
1135 * not support 802.11e. New APs will provide proper queue parameters,
1136 * that we will configure later.
1137 */
1138 enable_qos = (sdata->vif.type != NL80211_IFTYPE_STATION);
1139
1140 is_ocb = (sdata->vif.type == NL80211_IFTYPE_OCB); 1133 is_ocb = (sdata->vif.type == NL80211_IFTYPE_OCB);
1141 1134
1142 /* Set defaults according to 802.11-2007 Table 7-37 */ 1135 /* Set defaults according to 802.11-2007 Table 7-37 */