ar71xx: switch to kernel 4.14
[openwrt/staging/jogo.git] / target / linux / ar71xx / patches-4.9 / 910-unaligned_access_hacks.patch
index f26af24d14800fbfa45b9899f46816aa32da875e..049ee78d339b194eb8c0cb1e680a030eb448fa16 100644 (file)
                                               &sin->sin6_addr);
                        sin->sin6_scope_id = 0;
                }
-@@ -814,12 +814,12 @@ int ip6_datagram_send_ctl(struct net *ne
+@@ -817,12 +817,12 @@ int ip6_datagram_send_ctl(struct net *ne
                        }
  
                        if (fl6->flowlabel&IPV6_FLOWINFO_MASK) {
                case IPV6_2292HOPOPTS:
 --- a/net/ipv6/ip6_gre.c
 +++ b/net/ipv6/ip6_gre.c
-@@ -394,7 +394,7 @@ static void ip6gre_err(struct sk_buff *s
+@@ -397,7 +397,7 @@ static void ip6gre_err(struct sk_buff *s
                return;
        ipv6h = (const struct ipv6hdr *)skb->data;
        greh = (const struct gre_base_hdr *)(skb->data + offset);
  #endif /* _LINUX_TYPES_H */
 --- a/net/ipv4/af_inet.c
 +++ b/net/ipv4/af_inet.c
-@@ -1318,8 +1318,8 @@ struct sk_buff **inet_gro_receive(struct
+@@ -1319,8 +1319,8 @@ struct sk_buff **inet_gro_receive(struct
        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
-@@ -458,7 +458,7 @@ static struct neighbour *ipv4_neigh_look
+@@ -461,7 +461,7 @@ static struct neighbour *ipv4_neigh_look
        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
-@@ -448,48 +448,53 @@ static void tcp_options_write(__be32 *pt
+@@ -453,48 +453,53 @@ static void tcp_options_write(__be32 *pt
        u16 options = opts->options;    /* mungable copy */
  
        if (unlikely(OPTION_MD5 & options)) {
        }
  
        if (unlikely(opts->num_sack_blocks)) {
-@@ -497,16 +502,17 @@ static void tcp_options_write(__be32 *pt
+@@ -502,16 +507,17 @@ static void tcp_options_write(__be32 *pt
                        tp->duplicate_sack : tp->selective_acks;
                int this_sack;
  
                }
  
                tp->rx_opt.dsack = 0;
-@@ -519,13 +525,14 @@ static void tcp_options_write(__be32 *pt
+@@ -524,13 +530,14 @@ static void tcp_options_write(__be32 *pt
  
                if (foc->exp) {
                        len = TCPOLEN_EXP_FASTOPEN_BASE + foc->len;
                memcpy(p, foc->val, foc->len);
 --- a/net/ipv4/igmp.c
 +++ b/net/ipv4/igmp.c
-@@ -533,7 +533,7 @@ static struct sk_buff *add_grec(struct s
+@@ -537,7 +537,7 @@ static struct sk_buff *add_grec(struct s
                if (!skb)
                        return NULL;
                psrc = (__be32 *)skb_put(skb, sizeof(__be32));
                        goto next_ht;
 --- a/net/ipv6/ip6_offload.c
 +++ b/net/ipv6/ip6_offload.c
-@@ -220,7 +220,7 @@ static struct sk_buff **ipv6_gro_receive
+@@ -221,7 +221,7 @@ static struct sk_buff **ipv6_gro_receive
                        continue;
  
                iph2 = (struct ipv6hdr *)(p->data + off);
  
  #define       IP6_MF          0x0001
  #define       IP6_OFFSET      0xFFF8
-@@ -449,8 +449,8 @@ static inline void __ipv6_addr_set_half(
+@@ -443,8 +443,8 @@ static inline void __ipv6_addr_set_half(
        }
  #endif
  #endif
  }
  
  static inline void ipv6_addr_set(struct in6_addr *addr, 
-@@ -509,6 +509,8 @@ static inline bool ipv6_prefix_equal(con
+@@ -503,6 +503,8 @@ static inline bool ipv6_prefix_equal(con
        const __be32 *a1 = addr1->s6_addr32;
        const __be32 *a2 = addr2->s6_addr32;
        unsigned int pdw, pbi;
  
        /* check complete u32 in prefix */
        pdw = prefixlen >> 5;
-@@ -517,7 +519,9 @@ static inline bool ipv6_prefix_equal(con
+@@ -511,7 +513,9 @@ static inline bool ipv6_prefix_equal(con
  
        /* check incomplete u32 in prefix */
        pbi = prefixlen & 0x1f;
                return false;
  
        return true;
-@@ -661,13 +665,13 @@ static inline void ipv6_addr_set_v4mappe
+@@ -655,13 +659,13 @@ static inline void ipv6_addr_set_v4mappe
   */
  static inline int __ipv6_addr_diff32(const void *token1, const void *token2, int addrlen)
  {
                if (xb)
                        return i * 32 + 31 - __fls(ntohl(xb));
        }
-@@ -836,17 +840,18 @@ static inline int ip6_default_np_autolab
+@@ -830,17 +834,18 @@ static inline int ip6_default_np_autolab
  static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass,
                                __be32 flowlabel)
  {
  
 --- a/net/ipv4/tcp_input.c
 +++ b/net/ipv4/tcp_input.c
-@@ -3892,14 +3892,16 @@ static bool tcp_parse_aligned_timestamp(
+@@ -3910,14 +3910,16 @@ static bool tcp_parse_aligned_timestamp(
  {
        const __be32 *ptr = (const __be32 *)(th + 1);
  
                *sum = csum_fold(csum_partial(diff, sizeof(diff),
 --- a/drivers/net/vxlan.c
 +++ b/drivers/net/vxlan.c
-@@ -1811,15 +1811,15 @@ static int vxlan_build_skb(struct sk_buf
+@@ -1789,15 +1789,15 @@ static int vxlan_build_skb(struct sk_buf
                goto out_free;
  
        vxh = (struct vxlanhdr *) __skb_push(skb, sizeof(*vxh));
  
 --- a/net/ipv4/tcp_offload.c
 +++ b/net/ipv4/tcp_offload.c
-@@ -215,7 +215,7 @@ struct sk_buff **tcp_gro_receive(struct
+@@ -218,7 +218,7 @@ struct sk_buff **tcp_gro_receive(struct
  
                th2 = tcp_hdr(p);
  
                        NAPI_GRO_CB(p)->same_flow = 0;
                        continue;
                }
-@@ -233,8 +233,8 @@ found:
+@@ -236,8 +236,8 @@ found:
                  ~(TCP_FLAG_CWR | TCP_FLAG_FIN | TCP_FLAG_PSH));
        flush |= (__force int)(th->ack_seq ^ th2->ack_seq);
        for (i = sizeof(*th); i < thlen; i += 4)