From eb2e09c5e97d07fd1135c5c401ca217c93e09db1 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Wed, 10 Jul 2013 11:33:43 +0000 Subject: [PATCH] ar71xx: make implicit alignment in struct pptp_addr explicit to fix ABI breakage caused by the unaligned access hacks patch Signed-off-by: Felix Fietkau SVN-Revision: 37223 --- .../902-unaligned_access_hacks.patch | 10 ++++++++++ .../902-unaligned_access_hacks.patch | 18 ++++++++++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) 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 4e7af8db60..0b89df204b 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 @@ -902,3 +902,13 @@ return true; } return false; +--- a/include/uapi/linux/if_pppox.h ++++ b/include/uapi/linux/if_pppox.h +@@ -47,6 +47,7 @@ struct pppoe_addr { + */ + struct pptp_addr { + __be16 call_id; ++ __u16 pad; + struct in_addr sin_addr; + }; + diff --git a/target/linux/ar71xx/patches-3.8/902-unaligned_access_hacks.patch b/target/linux/ar71xx/patches-3.8/902-unaligned_access_hacks.patch index 400e766229..714d2d63e2 100644 --- a/target/linux/ar71xx/patches-3.8/902-unaligned_access_hacks.patch +++ b/target/linux/ar71xx/patches-3.8/902-unaligned_access_hacks.patch @@ -279,7 +279,7 @@ #include #include -@@ -764,10 +765,10 @@ static void tcp_v6_send_response(struct +@@ -764,10 +765,10 @@ static void tcp_v6_send_response(struct topt = (__be32 *)(t1 + 1); if (ts) { @@ -415,7 +415,7 @@ if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK) fl6.flowi6_mark = skb->mark; -@@ -1240,7 +1240,7 @@ static int ip6gre_header(struct sk_buff +@@ -1240,7 +1240,7 @@ static int ip6gre_header(struct sk_buff struct ipv6hdr *ipv6h = (struct ipv6hdr *)skb_push(skb, t->hlen); __be16 *p = (__be16 *)(ipv6h+1); @@ -831,7 +831,7 @@ #include --- a/include/net/inet_ecn.h +++ b/include/net/inet_ecn.h -@@ -115,13 +115,13 @@ static inline int IP6_ECN_set_ce(struct +@@ -115,13 +115,13 @@ static inline int IP6_ECN_set_ce(struct { if (INET_ECN_is_not_ect(ipv6_get_dsfield(iph))) return 0; @@ -994,7 +994,7 @@ ptr = ip6hoff + sizeof(struct ipv6hdr); --- a/net/xfrm/xfrm_input.c +++ b/net/xfrm/xfrm_input.c -@@ -77,8 +77,8 @@ int xfrm_parse_spi(struct sk_buff *skb, +@@ -77,8 +77,8 @@ int xfrm_parse_spi(struct sk_buff *skb, if (!pskb_may_pull(skb, hlen)) return -EINVAL; @@ -1005,3 +1005,13 @@ return 0; } +--- a/include/uapi/linux/if_pppox.h ++++ b/include/uapi/linux/if_pppox.h +@@ -47,6 +47,7 @@ struct pppoe_addr { + */ + struct pptp_addr { + __be16 call_id; ++ __u16 pad; + struct in_addr sin_addr; + }; +