diff options
-rw-r--r-- | net/mac80211/ibss.c | 2 | ||||
-rw-r--r-- | net/mac80211/ieee80211_i.h | 2 | ||||
-rw-r--r-- | net/mac80211/iface.c | 8 | ||||
-rw-r--r-- | net/mac80211/mlme.c | 4 | ||||
-rw-r--r-- | net/mac80211/util.c | 11 |
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); |
1771 | void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata, | 1771 | void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata, |
1772 | bool bss_notify); | 1772 | bool bss_notify, bool enable_qos); |
1773 | void ieee80211_xmit(struct ieee80211_sub_if_data *sdata, | 1773 | void 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 | ||
1107 | void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata, | 1107 | void 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 */ |