]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - net/wireless/util.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland...
[karo-tx-linux.git] / net / wireless / util.c
index 9c601d59b77a802664c763c8cbaa02936348fc64..9aa9db6c81411ddfcd77c34de8128fcd57e2e5d2 100644 (file)
@@ -9,6 +9,7 @@
 #include <linux/slab.h>
 #include <net/cfg80211.h>
 #include <net/ip.h>
+#include <net/dsfield.h>
 #include "core.h"
 
 struct ieee80211_rate *
@@ -650,7 +651,10 @@ unsigned int cfg80211_classify8021d(struct sk_buff *skb)
 
        switch (skb->protocol) {
        case htons(ETH_P_IP):
-               dscp = ip_hdr(skb)->tos & 0xfc;
+               dscp = ipv4_get_dsfield(ip_hdr(skb)) & 0xfc;
+               break;
+       case htons(ETH_P_IPV6):
+               dscp = ipv6_get_dsfield(ipv6_hdr(skb)) & 0xfc;
                break;
        default:
                return 0;
@@ -740,9 +744,9 @@ static void cfg80211_process_wdev_events(struct wireless_dev *wdev)
                                NULL);
                        break;
                case EVENT_ROAMED:
-                       __cfg80211_roamed(wdev, ev->rm.channel, ev->rm.bssid,
-                                         ev->rm.req_ie, ev->rm.req_ie_len,
-                                         ev->rm.resp_ie, ev->rm.resp_ie_len);
+                       __cfg80211_roamed(wdev, ev->rm.bss, ev->rm.req_ie,
+                                         ev->rm.req_ie_len, ev->rm.resp_ie,
+                                         ev->rm.resp_ie_len);
                        break;
                case EVENT_DISCONNECTED:
                        __cfg80211_disconnected(wdev->netdev,