diff options
| author | David S. Miller <davem@davemloft.net> | 2013-10-17 16:14:29 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2013-10-17 16:14:29 -0400 |
| commit | 5cda73b68ebf7e08586d61e6777e64e12df23f07 (patch) | |
| tree | 54e7d4409f96e519a6e1ef4ff2a057785df5f6f1 /net/wireless/util.c | |
| parent | 0baf2b35fc70ab16c385963d2502da26a55d2cb7 (diff) | |
| parent | 9f96da4dd2ccf685b506a21104cb13b1aadd907a (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.c | 9 |
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); | |||
| 691 | unsigned int cfg80211_classify8021d(struct sk_buff *skb) | 692 | unsigned 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; |
