aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ar71xx
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ar71xx')
-rw-r--r--target/linux/ar71xx/Makefile2
-rw-r--r--target/linux/ar71xx/patches-3.10/902-unaligned_access_hacks.patch19
2 files changed, 12 insertions, 9 deletions
diff --git a/target/linux/ar71xx/Makefile b/target/linux/ar71xx/Makefile
index 0c99c08ba1..d7d4f4ef1e 100644
--- a/target/linux/ar71xx/Makefile
+++ b/target/linux/ar71xx/Makefile
@@ -13,7 +13,7 @@ FEATURES:=squashfs targz mips16
CPU_TYPE=34kc
SUBTARGETS:=generic nand
-LINUX_VERSION:=3.10.15
+LINUX_VERSION:=3.10.17
include $(INCLUDE_DIR)/target.mk
diff --git a/target/linux/ar71xx/patches-3.10/902-unaligned_access_hacks.patch b/target/linux/ar71xx/patches-3.10/902-unaligned_access_hacks.patch
index fa4ff47d3c..ce55abdf50 100644
--- a/target/linux/ar71xx/patches-3.10/902-unaligned_access_hacks.patch
+++ b/target/linux/ar71xx/patches-3.10/902-unaligned_access_hacks.patch
@@ -342,7 +342,7 @@
--- a/net/ipv6/exthdrs.c
+++ b/net/ipv6/exthdrs.c
-@@ -579,7 +579,7 @@ static bool ipv6_hop_jumbo(struct sk_buf
+@@ -573,7 +573,7 @@ static bool ipv6_hop_jumbo(struct sk_buf
goto drop;
}
@@ -367,7 +367,7 @@
#endif /* _LINUX_TYPES_H */
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
-@@ -1383,8 +1383,8 @@ static struct sk_buff **inet_gro_receive
+@@ -1381,8 +1381,8 @@ static struct sk_buff **inet_gro_receive
if (unlikely(ip_fast_csum((u8 *)iph, 5)))
goto out_unlock;
@@ -558,8 +558,8 @@
--- a/net/core/flow_dissector.c
+++ b/net/core/flow_dissector.c
@@ -152,7 +152,7 @@ ipv6:
- nhoff += poff;
- ports = skb_header_pointer(skb, nhoff, sizeof(_ports), &_ports);
+ ports = skb_header_pointer(skb, nhoff + poff,
+ sizeof(_ports), &_ports);
if (ports)
- flow->ports = *ports;
+ flow->ports = net_hdr_word(ports);
@@ -760,8 +760,8 @@
#include <linux/types.h>
+#include <linux/in6.h>
- extern void net_secret_init(void);
extern __u32 secure_ip_id(__be32 daddr);
+ extern __u32 secure_ipv6_id(const __be32 daddr[4]);
--- a/include/uapi/linux/in.h
+++ b/include/uapi/linux/in.h
@@ -55,7 +55,7 @@ enum {
@@ -775,12 +775,13 @@
#define IP_TTL 2
--- a/net/core/secure_seq.c
+++ b/net/core/secure_seq.c
-@@ -41,10 +41,11 @@ __u32 secure_tcpv6_sequence_number(const
+@@ -54,11 +54,12 @@ __u32 secure_tcpv6_sequence_number(const
u32 secret[MD5_MESSAGE_BYTES / 4];
u32 hash[MD5_DIGEST_WORDS];
u32 i;
+ const struct in6_addr *daddr6 = (struct in6_addr *) daddr;
+ net_secret_init();
memcpy(hash, saddr, 16);
for (i = 0; i < 4; i++)
- secret[i] = net_secret[i] + (__force u32)daddr[i];
@@ -788,12 +789,13 @@
secret[4] = net_secret[4] +
(((__force u16)sport << 16) + (__force u16)dport);
for (i = 5; i < MD5_MESSAGE_BYTES / 4; i++)
-@@ -62,10 +63,11 @@ u32 secure_ipv6_port_ephemeral(const __b
+@@ -76,11 +77,12 @@ u32 secure_ipv6_port_ephemeral(const __b
u32 secret[MD5_MESSAGE_BYTES / 4];
u32 hash[MD5_DIGEST_WORDS];
u32 i;
+ const struct in6_addr *daddr6 = (struct in6_addr *) daddr;
+ net_secret_init();
memcpy(hash, saddr, 16);
for (i = 0; i < 4; i++)
- secret[i] = net_secret[i] + (__force u32) daddr[i];
@@ -801,12 +803,13 @@
secret[4] = net_secret[4] + (__force u32)dport;
for (i = 5; i < MD5_MESSAGE_BYTES / 4; i++)
secret[i] = net_secret[i];
-@@ -163,10 +165,11 @@ u64 secure_dccpv6_sequence_number(__be32
+@@ -183,11 +185,12 @@ u64 secure_dccpv6_sequence_number(__be32
u32 hash[MD5_DIGEST_WORDS];
u64 seq;
u32 i;
+ const struct in6_addr *daddr6 = (struct in6_addr *) daddr;
+ net_secret_init();
memcpy(hash, saddr, 16);
for (i = 0; i < 4; i++)
- secret[i] = net_secret[i] + daddr[i];