diff options
author | Johannes Berg <johannes.berg@intel.com> | 2018-09-05 07:34:02 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2018-09-10 03:13:32 -0400 |
commit | cb59bc14e830028d2244861216df038165d7625d (patch) | |
tree | 8a2640f332b6491156c3ce6466988fe02dc4166f | |
parent | 119f94a6fefcc76d47075b83d2b73d04c895df78 (diff) |
mac80211: TDLS: fix skb queue/priority assignment
If the TDLS setup happens over a connection to an AP that
doesn't have QoS, we nevertheless assign a non-zero TID
(skb->priority) and queue mapping, which may confuse us or
drivers later.
Fix it by just assigning the special skb->priority and then
using ieee80211_select_queue() just like other data frames
would go through.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r-- | net/mac80211/tdls.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/net/mac80211/tdls.c b/net/mac80211/tdls.c index 5cd5e6e5834e..6c647f425e05 100644 --- a/net/mac80211/tdls.c +++ b/net/mac80211/tdls.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include "ieee80211_i.h" | 16 | #include "ieee80211_i.h" |
17 | #include "driver-ops.h" | 17 | #include "driver-ops.h" |
18 | #include "rate.h" | 18 | #include "rate.h" |
19 | #include "wme.h" | ||
19 | 20 | ||
20 | /* give usermode some time for retries in setting up the TDLS session */ | 21 | /* give usermode some time for retries in setting up the TDLS session */ |
21 | #define TDLS_PEER_SETUP_TIMEOUT (15 * HZ) | 22 | #define TDLS_PEER_SETUP_TIMEOUT (15 * HZ) |
@@ -1010,14 +1011,13 @@ ieee80211_tdls_prep_mgmt_packet(struct wiphy *wiphy, struct net_device *dev, | |||
1010 | switch (action_code) { | 1011 | switch (action_code) { |
1011 | case WLAN_TDLS_SETUP_REQUEST: | 1012 | case WLAN_TDLS_SETUP_REQUEST: |
1012 | case WLAN_TDLS_SETUP_RESPONSE: | 1013 | case WLAN_TDLS_SETUP_RESPONSE: |
1013 | skb_set_queue_mapping(skb, IEEE80211_AC_BK); | 1014 | skb->priority = 256 + 2; |
1014 | skb->priority = 2; | ||
1015 | break; | 1015 | break; |
1016 | default: | 1016 | default: |
1017 | skb_set_queue_mapping(skb, IEEE80211_AC_VI); | 1017 | skb->priority = 256 + 5; |
1018 | skb->priority = 5; | ||
1019 | break; | 1018 | break; |
1020 | } | 1019 | } |
1020 | skb_set_queue_mapping(skb, ieee80211_select_queue(sdata, skb)); | ||
1021 | 1021 | ||
1022 | /* | 1022 | /* |
1023 | * Set the WLAN_TDLS_TEARDOWN flag to indicate a teardown in progress. | 1023 | * Set the WLAN_TDLS_TEARDOWN flag to indicate a teardown in progress. |