aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless/util.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2013-10-17 16:14:29 -0400
committerDavid S. Miller <davem@davemloft.net>2013-10-17 16:14:29 -0400
commit5cda73b68ebf7e08586d61e6777e64e12df23f07 (patch)
tree54e7d4409f96e519a6e1ef4ff2a057785df5f6f1 /net/wireless/util.c
parent0baf2b35fc70ab16c385963d2502da26a55d2cb7 (diff)
parent9f96da4dd2ccf685b506a21104cb13b1aadd907a (diff)
Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next
John W. Linville says: ==================== This is a batch of updates intended for the 3.13 stream... The biggest item of interest in here is wcn36xx, the new mac80211 driver for Qualcomm WCN3660/WCN3680 hardware. Regarding the mac80211 bits, Johannes says: "We have an assortment of cleanups and new features, of which the biggest one is probably the channel-switch support in IBSS. Nothing else really stands out much." On top of that, the ath9k and rt2x00 get a lot of update action from Felix Fietkau and Gabor Juhos, respectively. There are a handful of updates to other drivers here and there as well. Please let me know if there are problems! ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/wireless/util.c')
-rw-r--r--net/wireless/util.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/net/wireless/util.c b/net/wireless/util.c
index ce090c1c5e4f..3c8be6104ba4 100644
--- a/net/wireless/util.c
+++ b/net/wireless/util.c
@@ -10,6 +10,7 @@
10#include <net/cfg80211.h> 10#include <net/cfg80211.h>
11#include <net/ip.h> 11#include <net/ip.h>
12#include <net/dsfield.h> 12#include <net/dsfield.h>
13#include <linux/if_vlan.h>
13#include "core.h" 14#include "core.h"
14#include "rdev-ops.h" 15#include "rdev-ops.h"
15 16
@@ -691,6 +692,7 @@ EXPORT_SYMBOL(ieee80211_amsdu_to_8023s);
691unsigned int cfg80211_classify8021d(struct sk_buff *skb) 692unsigned int cfg80211_classify8021d(struct sk_buff *skb)
692{ 693{
693 unsigned int dscp; 694 unsigned int dscp;
695 unsigned char vlan_priority;
694 696
695 /* skb->priority values from 256->263 are magic values to 697 /* skb->priority values from 256->263 are magic values to
696 * directly indicate a specific 802.1d priority. This is used 698 * directly indicate a specific 802.1d priority. This is used
@@ -700,6 +702,13 @@ unsigned int cfg80211_classify8021d(struct sk_buff *skb)
700 if (skb->priority >= 256 && skb->priority <= 263) 702 if (skb->priority >= 256 && skb->priority <= 263)
701 return skb->priority - 256; 703 return skb->priority - 256;
702 704
705 if (vlan_tx_tag_present(skb)) {
706 vlan_priority = (vlan_tx_tag_get(skb) & VLAN_PRIO_MASK)
707 >> VLAN_PRIO_SHIFT;
708 if (vlan_priority > 0)
709 return vlan_priority;
710 }
711
703 switch (skb->protocol) { 712 switch (skb->protocol) {
704 case htons(ETH_P_IP): 713 case htons(ETH_P_IP):
705 dscp = ipv4_get_dsfield(ip_hdr(skb)) & 0xfc; 714 dscp = ipv4_get_dsfield(ip_hdr(skb)) & 0xfc;