aboutsummaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2016-05-19 14:09:25 +0200
committerFelix Fietkau <nbd@nbd.name>2016-05-19 16:56:34 +0200
commit9d37095fd055a2c11b4d62978fe22b2e6f8e2c32 (patch)
tree626968d6111ad4541c888b3bc71bdc851515350a /target
parent934daa7b50e5450aaf964f382bfb66b8986cbaeb (diff)
downloadupstream-9d37095fd055a2c11b4d62978fe22b2e6f8e2c32.tar.gz
upstream-9d37095fd055a2c11b4d62978fe22b2e6f8e2c32.tar.bz2
upstream-9d37095fd055a2c11b4d62978fe22b2e6f8e2c32.zip
ar71xx: fix a remaining unaligned access issue
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'target')
-rw-r--r--target/linux/ar71xx/patches-4.4/910-unaligned_access_hacks.patch19
1 files changed, 19 insertions, 0 deletions
diff --git a/target/linux/ar71xx/patches-4.4/910-unaligned_access_hacks.patch b/target/linux/ar71xx/patches-4.4/910-unaligned_access_hacks.patch
index 17e4606506..17a53ed6e6 100644
--- a/target/linux/ar71xx/patches-4.4/910-unaligned_access_hacks.patch
+++ b/target/linux/ar71xx/patches-4.4/910-unaligned_access_hacks.patch
@@ -910,3 +910,22 @@
/* Values for "flag" field in struct arpt_ip (general arp structure).
* No flags defined yet.
+--- a/net/core/utils.c
++++ b/net/core/utils.c
+@@ -321,8 +321,14 @@ void inet_proto_csum_replace16(__sum16 *
+ bool pseudohdr)
+ {
+ __be32 diff[] = {
+- ~from[0], ~from[1], ~from[2], ~from[3],
+- to[0], to[1], to[2], to[3],
++ ~net_hdr_word(&from[0]),
++ ~net_hdr_word(&from[1]),
++ ~net_hdr_word(&from[2]),
++ ~net_hdr_word(&from[3]),
++ net_hdr_word(&to[0]),
++ net_hdr_word(&to[1]),
++ net_hdr_word(&to[2]),
++ net_hdr_word(&to[3]),
+ };
+ if (skb->ip_summed != CHECKSUM_PARTIAL) {
+ *sum = csum_fold(csum_partial(diff, sizeof(diff),