ar71xx: refresh patches
authorblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Tue, 24 Feb 2015 12:01:08 +0000 (12:01 +0000)
committerblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Tue, 24 Feb 2015 12:01:08 +0000 (12:01 +0000)
Signed-off-by: John Crispin <blogic@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44528 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/ar71xx/patches-3.18/464-spi-ath79-fix-fast-flash-read.patch
target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch
target/linux/ar71xx/patches-3.18/902-unaligned_access_hacks.patch

index 39f26ab..4f88682 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/devices/m25p80.c
 +++ b/drivers/mtd/devices/m25p80.c
 --- a/drivers/mtd/devices/m25p80.c
 +++ b/drivers/mtd/devices/m25p80.c
-@@ -142,6 +142,9 @@
+@@ -142,6 +142,9 @@ static int m25p80_read(struct spi_nor *n
        flash->command[0] = nor->read_opcode;
        m25p_addr2cmd(nor, from, flash->command);
  
        flash->command[0] = nor->read_opcode;
        m25p_addr2cmd(nor, from, flash->command);
  
@@ -12,7 +12,7 @@
        t[0].len = m25p_cmdsz(nor) + dummy;
 --- a/drivers/spi/spi-ath79.c
 +++ b/drivers/spi/spi-ath79.c
        t[0].len = m25p_cmdsz(nor) + dummy;
 --- a/drivers/spi/spi-ath79.c
 +++ b/drivers/spi/spi-ath79.c
-@@ -260,6 +260,10 @@
+@@ -260,6 +260,10 @@ static int ath79_spi_do_read_flash_cmd(s
        sp->read_addr = 0;
  
        len = t->len - 1;
        sp->read_addr = 0;
  
        len = t->len - 1;
@@ -25,7 +25,7 @@
        while (len--) {
 --- a/include/linux/spi/spi.h
 +++ b/include/linux/spi/spi.h
        while (len--) {
 --- a/include/linux/spi/spi.h
 +++ b/include/linux/spi/spi.h
-@@ -635,6 +635,7 @@
+@@ -635,6 +635,7 @@ struct spi_transfer {
        u16             delay_usecs;
        u32             speed_hz;
        enum spi_transfer_type type;
        u16             delay_usecs;
        u32             speed_hz;
        enum spi_transfer_type type;
index 832df9e..6a0dfff 100644 (file)
 +      select ATH79_DEV_M25P80
 +      select ATH79_DEV_USB
 +      select ATH79_DEV_WMAC
 +      select ATH79_DEV_M25P80
 +      select ATH79_DEV_USB
 +      select ATH79_DEV_WMAC
-+
+-config ATH79_MACH_AP136
+-      bool "Atheros AP136/AP135 reference board"
+-      select SOC_QCA955X
 +config ATH79_MACH_TL_WA7210N_V2
 +       bool "TP-LINK TL-WA7210N v2 support"
 +       select SOC_AR724X
 +config ATH79_MACH_TL_WA7210N_V2
 +       bool "TP-LINK TL-WA7210N v2 support"
 +       select SOC_AR724X
 +       select ATH79_DEV_GPIO_BUTTONS
 +       select ATH79_DEV_M25P80
 +       select ATH79_DEV_WMAC
 +       select ATH79_DEV_GPIO_BUTTONS
 +       select ATH79_DEV_M25P80
 +       select ATH79_DEV_WMAC
--config ATH79_MACH_AP136
--      bool "Atheros AP136/AP135 reference board"
--      select SOC_QCA955X
++
 +config ATH79_MACH_TL_WA830RE_V2
 +      bool "TP-LINK TL-WA830RE v2 support"
 +      select SOC_AR934X
 +config ATH79_MACH_TL_WA830RE_V2
 +      bool "TP-LINK TL-WA830RE v2 support"
 +      select SOC_AR934X
  
  config ATH79_MACH_UBNT_XM
        bool "Ubiquiti Networks XM/UniFi boards"
  
  config ATH79_MACH_UBNT_XM
        bool "Ubiquiti Networks XM/UniFi boards"
-@@ -83,6 +1045,97 @@ config ATH79_MACH_UBNT_XM
+@@ -83,6 +1055,97 @@ config ATH79_MACH_UBNT_XM
          Say 'Y' here if you want your kernel to support the
          Ubiquiti Networks XM (rev 1.0) board.
  
          Say 'Y' here if you want your kernel to support the
          Ubiquiti Networks XM (rev 1.0) board.
  
  endmenu
  
  config SOC_AR71XX
  endmenu
  
  config SOC_AR71XX
-@@ -124,7 +1177,10 @@ config ATH79_DEV_DSA
+@@ -124,7 +1187,10 @@ config ATH79_DEV_DSA
  config ATH79_DEV_ETH
        def_bool n
  
  config ATH79_DEV_ETH
        def_bool n
  
        def_bool n
  
  config ATH79_DEV_GPIO_BUTTONS
        def_bool n
  
  config ATH79_DEV_GPIO_BUTTONS
-@@ -156,4 +1212,7 @@ config ATH79_PCI_ATH9K_FIXUP
+@@ -156,4 +1222,7 @@ config ATH79_PCI_ATH9K_FIXUP
  config ATH79_ROUTERBOOT
        def_bool n
  
  config ATH79_ROUTERBOOT
        def_bool n
  
index 4a0935f..45772b6 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/include/asm/checksum.h
 +++ b/arch/mips/include/asm/checksum.h
 --- a/arch/mips/include/asm/checksum.h
 +++ b/arch/mips/include/asm/checksum.h
-@@ -134,26 +134,30 @@
+@@ -134,26 +134,30 @@ static inline __sum16 ip_fast_csum(const
        const unsigned int *stop = word + ihl;
        unsigned int csum;
        int carry;
        const unsigned int *stop = word + ihl;
        unsigned int csum;
        int carry;
@@ -42,7 +42,7 @@
        } while (word != stop);
  
        return csum_fold(csum);
        } while (word != stop);
  
        return csum_fold(csum);
-@@ -222,69 +226,4 @@
+@@ -222,69 +226,4 @@ static inline __sum16 ip_compute_csum(co
        return csum_fold(csum_partial(buff, len, 0));
  }
  
        return csum_fold(csum_partial(buff, len, 0));
  }
  
  #endif /* _ASM_CHECKSUM_H */
 --- a/include/uapi/linux/ip.h
 +++ b/include/uapi/linux/ip.h
  #endif /* _ASM_CHECKSUM_H */
 --- a/include/uapi/linux/ip.h
 +++ b/include/uapi/linux/ip.h
-@@ -102,7 +102,7 @@
+@@ -102,7 +102,7 @@ struct iphdr {
        __be32  saddr;
        __be32  daddr;
        /*The options start here. */
        __be32  saddr;
        __be32  daddr;
        /*The options start here. */
  struct ip_auth_hdr {
 --- a/include/uapi/linux/ipv6.h
 +++ b/include/uapi/linux/ipv6.h
  struct ip_auth_hdr {
 --- a/include/uapi/linux/ipv6.h
 +++ b/include/uapi/linux/ipv6.h
-@@ -125,7 +125,7 @@
+@@ -125,7 +125,7 @@ struct ipv6hdr {
  
        struct  in6_addr        saddr;
        struct  in6_addr        daddr;
  
        struct  in6_addr        saddr;
        struct  in6_addr        daddr;
  /* index values for the variables in ipv6_devconf */
 --- a/include/uapi/linux/tcp.h
 +++ b/include/uapi/linux/tcp.h
  /* index values for the variables in ipv6_devconf */
 --- a/include/uapi/linux/tcp.h
 +++ b/include/uapi/linux/tcp.h
-@@ -54,7 +54,7 @@
+@@ -54,7 +54,7 @@ struct tcphdr {
        __be16  window;
        __sum16 check;
        __be16  urg_ptr;
        __be16  window;
        __sum16 check;
        __be16  urg_ptr;
  
  /*
   *    The union cast uses a gcc extension to avoid aliasing problems
  
  /*
   *    The union cast uses a gcc extension to avoid aliasing problems
-@@ -64,7 +64,7 @@
+@@ -64,7 +64,7 @@ struct tcphdr {
  union tcp_word_hdr { 
        struct tcphdr hdr;
        __be32            words[5];
  union tcp_word_hdr { 
        struct tcphdr hdr;
        __be32            words[5];
  
 --- a/include/uapi/linux/udp.h
 +++ b/include/uapi/linux/udp.h
  
 --- a/include/uapi/linux/udp.h
 +++ b/include/uapi/linux/udp.h
-@@ -24,7 +24,7 @@
+@@ -24,7 +24,7 @@ struct udphdr {
        __be16  dest;
        __be16  len;
        __sum16 check;
        __be16  dest;
        __be16  len;
        __sum16 check;
  #define UDP_CORK      1       /* Never send partially complete segments */
 --- a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
 +++ b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
  #define UDP_CORK      1       /* Never send partially complete segments */
 --- a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
 +++ b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
-@@ -41,8 +41,8 @@
+@@ -41,8 +41,8 @@ static bool ipv4_pkt_to_tuple(const stru
        if (ap == NULL)
                return false;
  
        if (ap == NULL)
                return false;
  
  }
 --- a/include/uapi/linux/icmp.h
 +++ b/include/uapi/linux/icmp.h
  }
 --- a/include/uapi/linux/icmp.h
 +++ b/include/uapi/linux/icmp.h
-@@ -80,7 +80,7 @@
+@@ -80,7 +80,7 @@ struct icmphdr {
                __be16  mtu;
        } frag;
    } un;
                __be16  mtu;
        } frag;
    } un;
  /*
 --- a/include/uapi/linux/in6.h
 +++ b/include/uapi/linux/in6.h
  /*
 --- a/include/uapi/linux/in6.h
 +++ b/include/uapi/linux/in6.h
-@@ -42,7 +42,7 @@
+@@ -42,7 +42,7 @@ struct in6_addr {
  #define s6_addr16             in6_u.u6_addr16
  #define s6_addr32             in6_u.u6_addr32
  #endif
  #define s6_addr16             in6_u.u6_addr16
  #define s6_addr32             in6_u.u6_addr32
  #endif
  #include <linux/uaccess.h>
  #include <linux/ipv6.h>
  #include <linux/icmpv6.h>
  #include <linux/uaccess.h>
  #include <linux/ipv6.h>
  #include <linux/icmpv6.h>
-@@ -833,10 +834,10 @@
+@@ -833,10 +834,10 @@ static void tcp_v6_send_response(struct
        topt = (__be32 *)(t1 + 1);
  
        if (tsecr) {
        topt = (__be32 *)(t1 + 1);
  
        if (tsecr) {
   */
 --- a/net/ipv6/datagram.c
 +++ b/net/ipv6/datagram.c
   */
 --- a/net/ipv6/datagram.c
 +++ b/net/ipv6/datagram.c
-@@ -374,7 +374,7 @@
+@@ -374,7 +374,7 @@ int ipv6_recv_error(struct sock *sk, str
                                ipv6_iface_scope_id(&sin->sin6_addr,
                                                    IP6CB(skb)->iif);
                } else {
                                ipv6_iface_scope_id(&sin->sin6_addr,
                                                    IP6CB(skb)->iif);
                } else {
                                               &sin->sin6_addr);
                        sin->sin6_scope_id = 0;
                }
                                               &sin->sin6_addr);
                        sin->sin6_scope_id = 0;
                }
-@@ -712,12 +712,12 @@
+@@ -712,12 +712,12 @@ int ip6_datagram_send_ctl(struct net *ne
                        }
  
                        if (fl6->flowlabel&IPV6_FLOWINFO_MASK) {
                        }
  
                        if (fl6->flowlabel&IPV6_FLOWINFO_MASK) {
                case IPV6_2292HOPOPTS:
 --- a/net/ipv6/ip6_gre.c
 +++ b/net/ipv6/ip6_gre.c
                case IPV6_2292HOPOPTS:
 --- a/net/ipv6/ip6_gre.c
 +++ b/net/ipv6/ip6_gre.c
-@@ -393,7 +393,7 @@
+@@ -393,7 +393,7 @@ static void ip6gre_err(struct sk_buff *s
  
        t = ip6gre_tunnel_lookup(skb->dev, &ipv6h->daddr, &ipv6h->saddr,
                                flags & GRE_KEY ?
  
        t = ip6gre_tunnel_lookup(skb->dev, &ipv6h->daddr, &ipv6h->saddr,
                                flags & GRE_KEY ?
                                p[1]);
        if (t == NULL)
                return;
                                p[1]);
        if (t == NULL)
                return;
-@@ -475,11 +475,11 @@
+@@ -475,11 +475,11 @@ static int ip6gre_rcv(struct sk_buff *sk
                        offset += 4;
                }
                if (flags&GRE_KEY) {
                        offset += 4;
                }
                if (flags&GRE_KEY) {
                        offset += 4;
                }
        }
                        offset += 4;
                }
        }
-@@ -744,7 +744,7 @@
+@@ -744,7 +744,7 @@ static netdev_tx_t ip6gre_xmit2(struct s
  
                if (tunnel->parms.o_flags&GRE_SEQ) {
                        ++tunnel->o_seqno;
  
                if (tunnel->parms.o_flags&GRE_SEQ) {
                        ++tunnel->o_seqno;
                        ptr--;
                }
                if (tunnel->parms.o_flags&GRE_KEY) {
                        ptr--;
                }
                if (tunnel->parms.o_flags&GRE_KEY) {
-@@ -840,7 +840,7 @@
+@@ -840,7 +840,7 @@ static inline int ip6gre_xmit_ipv6(struc
  
        dsfield = ipv6_get_dsfield(ipv6h);
        if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS)
  
        dsfield = ipv6_get_dsfield(ipv6h);
        if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS)
        if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK)
 --- a/net/ipv6/ip6_tunnel.c
 +++ b/net/ipv6/ip6_tunnel.c
        if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK)
 --- a/net/ipv6/ip6_tunnel.c
 +++ b/net/ipv6/ip6_tunnel.c
-@@ -1291,7 +1291,7 @@
+@@ -1291,7 +1291,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
  
        dsfield = ipv6_get_dsfield(ipv6h);
        if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS)
  
        dsfield = ipv6_get_dsfield(ipv6h);
        if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS)
        if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK)
 --- a/net/ipv6/exthdrs.c
 +++ b/net/ipv6/exthdrs.c
        if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK)
 --- a/net/ipv6/exthdrs.c
 +++ b/net/ipv6/exthdrs.c
-@@ -573,7 +573,7 @@
+@@ -573,7 +573,7 @@ static bool ipv6_hop_jumbo(struct sk_buf
                goto drop;
        }
  
                goto drop;
        }
  
                                 IPSTATS_MIB_INHDRERRORS);
 --- a/include/linux/types.h
 +++ b/include/linux/types.h
                                 IPSTATS_MIB_INHDRERRORS);
 --- a/include/linux/types.h
 +++ b/include/linux/types.h
-@@ -213,5 +213,11 @@
+@@ -213,5 +213,11 @@ struct callback_head {
  };
  #define rcu_head callback_head
  
  };
  #define rcu_head callback_head
  
  #endif /* _LINUX_TYPES_H */
 --- a/net/ipv4/af_inet.c
 +++ b/net/ipv4/af_inet.c
  #endif /* _LINUX_TYPES_H */
 --- a/net/ipv4/af_inet.c
 +++ b/net/ipv4/af_inet.c
-@@ -1324,8 +1324,8 @@
+@@ -1324,8 +1324,8 @@ static struct sk_buff **inet_gro_receive
        if (unlikely(ip_fast_csum((u8 *)iph, 5)))
                goto out_unlock;
  
        if (unlikely(ip_fast_csum((u8 *)iph, 5)))
                goto out_unlock;
  
        for (p = *head; p; p = p->next) {
 --- a/net/ipv4/route.c
 +++ b/net/ipv4/route.c
        for (p = *head; p; p = p->next) {
 --- a/net/ipv4/route.c
 +++ b/net/ipv4/route.c
-@@ -454,7 +454,7 @@
+@@ -454,7 +454,7 @@ static struct neighbour *ipv4_neigh_look
        else if (skb)
                pkey = &ip_hdr(skb)->daddr;
  
        else if (skb)
                pkey = &ip_hdr(skb)->daddr;
  
        return neigh_create(&arp_tbl, pkey, dev);
 --- a/net/ipv4/tcp_output.c
 +++ b/net/ipv4/tcp_output.c
        return neigh_create(&arp_tbl, pkey, dev);
 --- a/net/ipv4/tcp_output.c
 +++ b/net/ipv4/tcp_output.c
-@@ -446,48 +446,53 @@
+@@ -446,48 +446,53 @@ static void tcp_options_write(__be32 *pt
        u16 options = opts->options;    /* mungable copy */
  
        if (unlikely(OPTION_MD5 & options)) {
        u16 options = opts->options;    /* mungable copy */
  
        if (unlikely(OPTION_MD5 & options)) {
        }
  
        if (unlikely(opts->num_sack_blocks)) {
        }
  
        if (unlikely(opts->num_sack_blocks)) {
-@@ -495,16 +500,17 @@
+@@ -495,16 +500,17 @@ static void tcp_options_write(__be32 *pt
                        tp->duplicate_sack : tp->selective_acks;
                int this_sack;
  
                        tp->duplicate_sack : tp->selective_acks;
                int this_sack;
  
                }
  
                tp->rx_opt.dsack = 0;
                }
  
                tp->rx_opt.dsack = 0;
-@@ -513,9 +519,10 @@
+@@ -513,9 +519,10 @@ static void tcp_options_write(__be32 *pt
        if (unlikely(OPTION_FAST_OPEN_COOKIE & options)) {
                struct tcp_fastopen_cookie *foc = opts->fastopen_cookie;
  
        if (unlikely(OPTION_FAST_OPEN_COOKIE & options)) {
                struct tcp_fastopen_cookie *foc = opts->fastopen_cookie;
  
                if ((foc->len & 3) == 2) {
 --- a/net/ipv4/igmp.c
 +++ b/net/ipv4/igmp.c
                if ((foc->len & 3) == 2) {
 --- a/net/ipv4/igmp.c
 +++ b/net/ipv4/igmp.c
-@@ -495,7 +495,7 @@
+@@ -495,7 +495,7 @@ static struct sk_buff *add_grec(struct s
                if (!skb)
                        return NULL;
                psrc = (__be32 *)skb_put(skb, sizeof(__be32));
                if (!skb)
                        return NULL;
                psrc = (__be32 *)skb_put(skb, sizeof(__be32));
                     type == IGMPV3_BLOCK_OLD_SOURCES) && psf->sf_crcount) {
 --- a/include/uapi/linux/igmp.h
 +++ b/include/uapi/linux/igmp.h
                     type == IGMPV3_BLOCK_OLD_SOURCES) && psf->sf_crcount) {
 --- a/include/uapi/linux/igmp.h
 +++ b/include/uapi/linux/igmp.h
-@@ -32,7 +32,7 @@
+@@ -32,7 +32,7 @@ struct igmphdr {
        __u8 code;              /* For newer IGMP */
        __sum16 csum;
        __be32 group;
        __u8 code;              /* For newer IGMP */
        __sum16 csum;
        __be32 group;
  
  /* V3 group record types [grec_type] */
  #define IGMPV3_MODE_IS_INCLUDE                1
  
  /* V3 group record types [grec_type] */
  #define IGMPV3_MODE_IS_INCLUDE                1
-@@ -48,7 +48,7 @@
+@@ -48,7 +48,7 @@ struct igmpv3_grec {
        __be16  grec_nsrcs;
        __be32  grec_mca;
        __be32  grec_src[0];
        __be16  grec_nsrcs;
        __be32  grec_mca;
        __be32  grec_src[0];
  
  struct igmpv3_report {
        __u8 type;
  
  struct igmpv3_report {
        __u8 type;
-@@ -57,7 +57,7 @@
+@@ -57,7 +57,7 @@ struct igmpv3_report {
        __be16 resv2;
        __be16 ngrec;
        struct igmpv3_grec grec[0];
        __be16 resv2;
        __be16 ngrec;
        struct igmpv3_grec grec[0];
  
  struct igmpv3_query {
        __u8 type;
  
  struct igmpv3_query {
        __u8 type;
-@@ -78,7 +78,7 @@
+@@ -78,7 +78,7 @@ struct igmpv3_query {
        __u8 qqic;
        __be16 nsrcs;
        __be32 srcs[0];
        __u8 qqic;
        __be16 nsrcs;
        __be32 srcs[0];
  #define IGMP_HOST_MEMBERSHIP_REPORT   0x12    /* Ditto */
 --- a/net/core/flow_dissector.c
 +++ b/net/core/flow_dissector.c
  #define IGMP_HOST_MEMBERSHIP_REPORT   0x12    /* Ditto */
 --- a/net/core/flow_dissector.c
 +++ b/net/core/flow_dissector.c
-@@ -53,7 +53,7 @@
+@@ -53,7 +53,7 @@ __be32 __skb_flow_get_ports(const struct
                ports = __skb_header_pointer(skb, thoff + poff,
                                             sizeof(_ports), data, hlen, &_ports);
                if (ports)
                ports = __skb_header_pointer(skb, thoff + poff,
                                             sizeof(_ports), data, hlen, &_ports);
                if (ports)
        return 0;
 --- a/include/uapi/linux/icmpv6.h
 +++ b/include/uapi/linux/icmpv6.h
        return 0;
 --- a/include/uapi/linux/icmpv6.h
 +++ b/include/uapi/linux/icmpv6.h
-@@ -76,7 +76,7 @@
+@@ -76,7 +76,7 @@ struct icmp6hdr {
  #define icmp6_addrconf_other  icmp6_dataun.u_nd_ra.other
  #define icmp6_rt_lifetime     icmp6_dataun.u_nd_ra.rt_lifetime
  #define icmp6_router_pref     icmp6_dataun.u_nd_ra.router_pref
  #define icmp6_addrconf_other  icmp6_dataun.u_nd_ra.other
  #define icmp6_rt_lifetime     icmp6_dataun.u_nd_ra.rt_lifetime
  #define icmp6_router_pref     icmp6_dataun.u_nd_ra.router_pref
  #define ICMPV6_ROUTER_PREF_LOW                0x3
 --- a/include/net/ndisc.h
 +++ b/include/net/ndisc.h
  #define ICMPV6_ROUTER_PREF_LOW                0x3
 --- a/include/net/ndisc.h
 +++ b/include/net/ndisc.h
-@@ -76,7 +76,7 @@
+@@ -76,7 +76,7 @@ struct ra_msg {
          struct icmp6hdr               icmph;
        __be32                  reachable_time;
        __be32                  retrans_timer;
          struct icmp6hdr               icmph;
        __be32                  reachable_time;
        __be32                  retrans_timer;
  
  struct rd_msg {
        struct icmp6hdr icmph;
  
  struct rd_msg {
        struct icmp6hdr icmph;
-@@ -148,10 +148,10 @@
+@@ -148,10 +148,10 @@ static inline u32 ndisc_hashfn(const voi
  {
        const u32 *p32 = pkey;
  
  {
        const u32 *p32 = pkey;
  
  }
  
  static inline struct neighbour *__ipv6_neigh_lookup_noref(struct net_device *dev, const void *pkey)
  }
  
  static inline struct neighbour *__ipv6_neigh_lookup_noref(struct net_device *dev, const void *pkey)
-@@ -168,8 +168,10 @@
+@@ -168,8 +168,10 @@ static inline struct neighbour *__ipv6_n
             n = rcu_dereference_bh(n->next)) {
                u32 *n32 = (u32 *) n->primary_key;
                if (n->dev == dev &&
             n = rcu_dereference_bh(n->next)) {
                u32 *n32 = (u32 *) n->primary_key;
                if (n->dev == dev &&
  
 --- a/net/sched/cls_u32.c
 +++ b/net/sched/cls_u32.c
  
 --- a/net/sched/cls_u32.c
 +++ b/net/sched/cls_u32.c
-@@ -148,7 +148,7 @@
+@@ -148,7 +148,7 @@ next_knode:
                        data = skb_header_pointer(skb, toff, 4, &hdata);
                        if (!data)
                                goto out;
                        data = skb_header_pointer(skb, toff, 4, &hdata);
                        if (!data)
                                goto out;
                                n = rcu_dereference_bh(n->next);
                                goto next_knode;
                        }
                                n = rcu_dereference_bh(n->next);
                                goto next_knode;
                        }
-@@ -201,8 +201,8 @@
+@@ -201,8 +201,8 @@ check_terminal:
                                                  &hdata);
                        if (!data)
                                goto out;
                                                  &hdata);
                        if (!data)
                                goto out;
                        goto next_ht;
 --- a/net/ipv6/ip6_offload.c
 +++ b/net/ipv6/ip6_offload.c
                        goto next_ht;
 --- a/net/ipv6/ip6_offload.c
 +++ b/net/ipv6/ip6_offload.c
-@@ -221,7 +221,7 @@
+@@ -221,7 +221,7 @@ static struct sk_buff **ipv6_gro_receive
                        continue;
  
                iph2 = (struct ipv6hdr *)(p->data + off);
                        continue;
  
                iph2 = (struct ipv6hdr *)(p->data + off);
                 * XXX skbs on the gro_list have all been parsed and pulled
 --- a/include/net/addrconf.h
 +++ b/include/net/addrconf.h
                 * XXX skbs on the gro_list have all been parsed and pulled
 --- a/include/net/addrconf.h
 +++ b/include/net/addrconf.h
-@@ -43,7 +43,7 @@
+@@ -43,7 +43,7 @@ struct prefix_info {
        __be32                  reserved2;
  
        struct in6_addr         prefix;
        __be32                  reserved2;
  
        struct in6_addr         prefix;
  #include <linux/netdevice.h>
 --- a/include/net/inet_ecn.h
 +++ b/include/net/inet_ecn.h
  #include <linux/netdevice.h>
 --- a/include/net/inet_ecn.h
 +++ b/include/net/inet_ecn.h
-@@ -115,13 +115,13 @@
+@@ -115,13 +115,13 @@ static inline int IP6_ECN_set_ce(struct
  {
        if (INET_ECN_is_not_ect(ipv6_get_dsfield(iph)))
                return 0;
  {
        if (INET_ECN_is_not_ect(ipv6_get_dsfield(iph)))
                return 0;
  static inline void ipv6_copy_dscp(unsigned int dscp, struct ipv6hdr *inner)
 --- a/include/net/ipv6.h
 +++ b/include/net/ipv6.h
  static inline void ipv6_copy_dscp(unsigned int dscp, struct ipv6hdr *inner)
 --- a/include/net/ipv6.h
 +++ b/include/net/ipv6.h
-@@ -109,7 +109,7 @@
+@@ -109,7 +109,7 @@ struct frag_hdr {
        __u8    reserved;
        __be16  frag_off;
        __be32  identification;
        __u8    reserved;
        __be16  frag_off;
        __be32  identification;
  
  #define       IP6_MF          0x0001
  #define       IP6_OFFSET      0xFFF8
  
  #define       IP6_MF          0x0001
  #define       IP6_OFFSET      0xFFF8
-@@ -398,8 +398,8 @@
+@@ -398,8 +398,8 @@ static inline void __ipv6_addr_set_half(
        }
  #endif
  #endif
        }
  #endif
  #endif
  }
  
  static inline void ipv6_addr_set(struct in6_addr *addr, 
  }
  
  static inline void ipv6_addr_set(struct in6_addr *addr, 
-@@ -458,6 +458,8 @@
+@@ -458,6 +458,8 @@ static inline bool ipv6_prefix_equal(con
        const __be32 *a1 = addr1->s6_addr32;
        const __be32 *a2 = addr2->s6_addr32;
        unsigned int pdw, pbi;
        const __be32 *a1 = addr1->s6_addr32;
        const __be32 *a2 = addr2->s6_addr32;
        unsigned int pdw, pbi;
  
        /* check complete u32 in prefix */
        pdw = prefixlen >> 5;
  
        /* check complete u32 in prefix */
        pdw = prefixlen >> 5;
-@@ -466,7 +468,9 @@
+@@ -466,7 +468,9 @@ static inline bool ipv6_prefix_equal(con
  
        /* check incomplete u32 in prefix */
        pbi = prefixlen & 0x1f;
  
        /* check incomplete u32 in prefix */
        pbi = prefixlen & 0x1f;
                return false;
  
        return true;
                return false;
  
        return true;
-@@ -609,13 +613,13 @@
+@@ -609,13 +613,13 @@ static inline void ipv6_addr_set_v4mappe
   */
  static inline int __ipv6_addr_diff32(const void *token1, const void *token2, int addrlen)
  {
   */
  static inline int __ipv6_addr_diff32(const void *token1, const void *token2, int addrlen)
  {
                if (xb)
                        return i * 32 + 31 - __fls(ntohl(xb));
        }
                if (xb)
                        return i * 32 + 31 - __fls(ntohl(xb));
        }
-@@ -739,17 +743,18 @@
+@@ -739,17 +743,18 @@ static inline __be32 ip6_make_flowlabel(
  static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass,
                                __be32 flowlabel)
  {
  static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass,
                                __be32 flowlabel)
  {
  u32 secure_ipv6_port_ephemeral(const __be32 *saddr, const __be32 *daddr,
 --- a/include/uapi/linux/in.h
 +++ b/include/uapi/linux/in.h
  u32 secure_ipv6_port_ephemeral(const __be32 *saddr, const __be32 *daddr,
 --- a/include/uapi/linux/in.h
 +++ b/include/uapi/linux/in.h
-@@ -78,7 +78,7 @@
+@@ -78,7 +78,7 @@ enum {
  /* Internet address. */
  struct in_addr {
        __be32  s_addr;
  /* Internet address. */
  struct in_addr {
        __be32  s_addr;
  #define IP_TTL                2
 --- a/net/core/secure_seq.c
 +++ b/net/core/secure_seq.c
  #define IP_TTL                2
 --- a/net/core/secure_seq.c
 +++ b/net/core/secure_seq.c
-@@ -46,11 +46,12 @@
+@@ -46,11 +46,12 @@ __u32 secure_tcpv6_sequence_number(const
        u32 secret[MD5_MESSAGE_BYTES / 4];
        u32 hash[MD5_DIGEST_WORDS];
        u32 i;
        u32 secret[MD5_MESSAGE_BYTES / 4];
        u32 hash[MD5_DIGEST_WORDS];
        u32 i;
        secret[4] = net_secret[4] +
                (((__force u16)sport << 16) + (__force u16)dport);
        for (i = 5; i < MD5_MESSAGE_BYTES / 4; i++)
        secret[4] = net_secret[4] +
                (((__force u16)sport << 16) + (__force u16)dport);
        for (i = 5; i < MD5_MESSAGE_BYTES / 4; i++)
-@@ -68,11 +69,12 @@
+@@ -68,11 +69,12 @@ u32 secure_ipv6_port_ephemeral(const __b
        u32 secret[MD5_MESSAGE_BYTES / 4];
        u32 hash[MD5_DIGEST_WORDS];
        u32 i;
        u32 secret[MD5_MESSAGE_BYTES / 4];
        u32 hash[MD5_DIGEST_WORDS];
        u32 i;
        secret[4] = net_secret[4] + (__force u32)dport;
        for (i = 5; i < MD5_MESSAGE_BYTES / 4; i++)
                secret[i] = net_secret[i];
        secret[4] = net_secret[4] + (__force u32)dport;
        for (i = 5; i < MD5_MESSAGE_BYTES / 4; i++)
                secret[i] = net_secret[i];
-@@ -150,11 +152,12 @@
+@@ -150,11 +152,12 @@ u64 secure_dccpv6_sequence_number(__be32
        u32 hash[MD5_DIGEST_WORDS];
        u64 seq;
        u32 i;
        u32 hash[MD5_DIGEST_WORDS];
        u64 seq;
        u32 i;
        for (i = 5; i < MD5_MESSAGE_BYTES / 4; i++)
 --- a/net/ipv6/ip6_fib.c
 +++ b/net/ipv6/ip6_fib.c
        for (i = 5; i < MD5_MESSAGE_BYTES / 4; i++)
 --- a/net/ipv6/ip6_fib.c
 +++ b/net/ipv6/ip6_fib.c
-@@ -137,7 +137,7 @@
+@@ -137,7 +137,7 @@ static __be32 addr_bit_set(const void *t
         * See include/asm-generic/bitops/le.h.
         */
        return (__force __be32)(1 << ((~fn_bit ^ BITOP_BE32_SWIZZLE) & 0x1f)) &
         * See include/asm-generic/bitops/le.h.
         */
        return (__force __be32)(1 << ((~fn_bit ^ BITOP_BE32_SWIZZLE) & 0x1f)) &
  static struct fib6_node *node_alloc(void)
 --- a/net/netfilter/nf_conntrack_proto_tcp.c
 +++ b/net/netfilter/nf_conntrack_proto_tcp.c
  static struct fib6_node *node_alloc(void)
 --- a/net/netfilter/nf_conntrack_proto_tcp.c
 +++ b/net/netfilter/nf_conntrack_proto_tcp.c
-@@ -456,7 +456,7 @@
+@@ -456,7 +456,7 @@ static void tcp_sack(const struct sk_buf
  
        /* Fast path for timestamp-only option */
        if (length == TCPOLEN_TSTAMP_ALIGNED
  
        /* Fast path for timestamp-only option */
        if (length == TCPOLEN_TSTAMP_ALIGNED
                                       | TCPOLEN_TIMESTAMP))
 --- a/net/xfrm/xfrm_input.c
 +++ b/net/xfrm/xfrm_input.c
                                       | TCPOLEN_TIMESTAMP))
 --- a/net/xfrm/xfrm_input.c
 +++ b/net/xfrm/xfrm_input.c
-@@ -152,8 +152,8 @@
+@@ -152,8 +152,8 @@ int xfrm_parse_spi(struct sk_buff *skb,
        if (!pskb_may_pull(skb, hlen))
                return -EINVAL;
  
        if (!pskb_may_pull(skb, hlen))
                return -EINVAL;
  
  
 --- a/net/ipv4/tcp_input.c
 +++ b/net/ipv4/tcp_input.c
  
 --- a/net/ipv4/tcp_input.c
 +++ b/net/ipv4/tcp_input.c
-@@ -3677,14 +3677,16 @@
+@@ -3677,14 +3677,16 @@ static bool tcp_parse_aligned_timestamp(
  {
        const __be32 *ptr = (const __be32 *)(th + 1);
  
  {
        const __be32 *ptr = (const __be32 *)(th + 1);
  
                return true;
 --- a/include/uapi/linux/if_pppox.h
 +++ b/include/uapi/linux/if_pppox.h
                return true;
 --- a/include/uapi/linux/if_pppox.h
 +++ b/include/uapi/linux/if_pppox.h
-@@ -47,6 +47,7 @@
+@@ -47,6 +47,7 @@ struct pppoe_addr {
   */
  struct pptp_addr {
        __u16           call_id;
   */
  struct pptp_addr {
        __u16           call_id;
  
 --- a/net/ipv6/netfilter/nf_log_ipv6.c
 +++ b/net/ipv6/netfilter/nf_log_ipv6.c
  
 --- a/net/ipv6/netfilter/nf_log_ipv6.c
 +++ b/net/ipv6/netfilter/nf_log_ipv6.c
-@@ -63,9 +63,10 @@
+@@ -63,9 +63,10 @@ static void dump_ipv6_packet(struct nf_l
        /* Max length: 44 "LEN=65535 TC=255 HOPLIMIT=255 FLOWLBL=FFFFF " */
        nf_log_buf_add(m, "LEN=%Zu TC=%u HOPLIMIT=%u FLOWLBL=%u ",
               ntohs(ih->payload_len) + sizeof(struct ipv6hdr),
        /* Max length: 44 "LEN=65535 TC=255 HOPLIMIT=255 FLOWLBL=FFFFF " */
        nf_log_buf_add(m, "LEN=%Zu TC=%u HOPLIMIT=%u FLOWLBL=%u ",
               ntohs(ih->payload_len) + sizeof(struct ipv6hdr),