diff options
author | Kyeyoon Park <kyeyoonp@qca.qualcomm.com> | 2013-12-17 08:04:43 +0100 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-12-19 16:30:58 +0100 |
commit | 32db6b54dfba38aa8fa4072b2a3fc6425139166a (patch) | |
tree | c77a6ad79daa65aa4ff186bdfc02e836be8e2254 /net/mac80211/wme.c | |
parent | cfg80211: Add support for QoS mapping (diff) | |
download | linux-32db6b54dfba38aa8fa4072b2a3fc6425139166a.tar.xz linux-32db6b54dfba38aa8fa4072b2a3fc6425139166a.zip |
mac80211: Add support for QoS mapping
Implement set_qos_map() handler for mac80211 to enable QoS mapping
functionality.
Signed-off-by: Kyeyoon Park <kyeyoonp@qca.qualcomm.com>
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/wme.c')
-rw-r--r-- | net/mac80211/wme.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/net/mac80211/wme.c b/net/mac80211/wme.c index faa9d8e451f0..21211c60ca98 100644 --- a/net/mac80211/wme.c +++ b/net/mac80211/wme.c @@ -106,6 +106,7 @@ u16 ieee80211_select_queue(struct ieee80211_sub_if_data *sdata, struct sta_info *sta = NULL; const u8 *ra = NULL; bool qos = false; + struct mac80211_qos_map *qos_map; if (local->hw.queues < IEEE80211_NUM_ACS || skb->len < 6) { skb->priority = 0; /* required for correct WPA/11i MIC */ @@ -155,7 +156,11 @@ u16 ieee80211_select_queue(struct ieee80211_sub_if_data *sdata, /* use the data classifier to determine what 802.1d tag the * data frame has */ - skb->priority = cfg80211_classify8021d(skb, NULL); + rcu_read_lock(); + qos_map = rcu_dereference(sdata->qos_map); + skb->priority = cfg80211_classify8021d(skb, qos_map ? + &qos_map->qos_map : NULL); + rcu_read_unlock(); return ieee80211_downgrade_queue(sdata, skb); } |