]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - net/ipv6/ip6_gre.c
Merge branch 'noprefixroute'
[karo-tx-linux.git] / net / ipv6 / ip6_gre.c
index 8acb28621f9cfd57071eeff1a39acd0de1ff6c02..f3ffb43f59c08634187f939db338413dd9a5514f 100644 (file)
@@ -61,9 +61,6 @@ static bool log_ecn_error = true;
 module_param(log_ecn_error, bool, 0644);
 MODULE_PARM_DESC(log_ecn_error, "Log packets received with corrupted ECN");
 
-#define IPV6_TCLASS_MASK (IPV6_FLOWINFO_MASK & ~IPV6_FLOWLABEL_MASK)
-#define IPV6_TCLASS_SHIFT 20
-
 #define HASH_SIZE_SHIFT  5
 #define HASH_SIZE (1 << HASH_SIZE_SHIFT)
 
@@ -499,7 +496,7 @@ static int ip6gre_rcv(struct sk_buff *skb)
                                          &ipv6h->saddr, &ipv6h->daddr, key,
                                          gre_proto);
        if (tunnel) {
-               struct pcpu_tstats *tstats;
+               struct pcpu_sw_netstats *tstats;
 
                if (!xfrm6_policy_check(NULL, XFRM_POLICY_IN, skb))
                        goto drop;
@@ -846,7 +843,7 @@ static inline int ip6gre_xmit_ipv6(struct sk_buff *skb, struct net_device *dev)
        if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS)
                fl6.flowlabel |= (*(__be32 *) ipv6h & IPV6_TCLASS_MASK);
        if (t->parms.flags & IP6_TNL_F_USE_ORIG_FLOWLABEL)
-               fl6.flowlabel |= (*(__be32 *) ipv6h & IPV6_FLOWLABEL_MASK);
+               fl6.flowlabel |= ip6_flowlabel(ipv6h);
        if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK)
                fl6.flowi6_mark = skb->mark;
 
@@ -1266,12 +1263,12 @@ static int ip6gre_tunnel_init(struct net_device *dev)
        if (ipv6_addr_any(&tunnel->parms.raddr))
                dev->header_ops = &ip6gre_header_ops;
 
-       dev->tstats = alloc_percpu(struct pcpu_tstats);
+       dev->tstats = alloc_percpu(struct pcpu_sw_netstats);
        if (!dev->tstats)
                return -ENOMEM;
 
        for_each_possible_cpu(i) {
-               struct pcpu_tstats *ip6gre_tunnel_stats;
+               struct pcpu_sw_netstats *ip6gre_tunnel_stats;
                ip6gre_tunnel_stats = per_cpu_ptr(dev->tstats, i);
                u64_stats_init(&ip6gre_tunnel_stats->syncp);
        }
@@ -1467,12 +1464,12 @@ static int ip6gre_tap_init(struct net_device *dev)
 
        ip6gre_tnl_link_config(tunnel, 1);
 
-       dev->tstats = alloc_percpu(struct pcpu_tstats);
+       dev->tstats = alloc_percpu(struct pcpu_sw_netstats);
        if (!dev->tstats)
                return -ENOMEM;
 
        for_each_possible_cpu(i) {
-               struct pcpu_tstats *ip6gre_tap_stats;
+               struct pcpu_sw_netstats *ip6gre_tap_stats;
                ip6gre_tap_stats = per_cpu_ptr(dev->tstats, i);
                u64_stats_init(&ip6gre_tap_stats->syncp);
        }