struct ip_auth_hdr {
--- a/include/uapi/linux/ipv6.h
+++ b/include/uapi/linux/ipv6.h
+@@ -104,7 +104,7 @@ struct ipv6_destopt_hao {
+ __u8 type;
+ __u8 length;
+ struct in6_addr addr;
+-} __attribute__((packed));
++} __attribute__((packed, aligned(2)));
+
+ /*
+ * IPv6 fixed header
@@ -131,7 +131,7 @@ struct ipv6hdr {
struct in6_addr saddr;
#define IGMP_HOST_MEMBERSHIP_REPORT 0x12 /* Ditto */
--- a/net/core/flow_dissector.c
+++ b/net/core/flow_dissector.c
-@@ -108,7 +108,7 @@ __be32 __skb_flow_get_ports(const struct
+@@ -109,7 +109,7 @@ __be32 __skb_flow_get_ports(const struct
ports = __skb_header_pointer(skb, thoff + poff,
sizeof(_ports), data, hlen, &_ports);
if (ports)
*sum = csum_fold(csum_partial(diff, sizeof(diff),
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
-@@ -1857,15 +1857,15 @@ static int vxlan_build_skb(struct sk_buf
+@@ -1868,15 +1868,15 @@ static int vxlan_build_skb(struct sk_buf
return err;
vxh = __skb_push(skb, sizeof(*vxh));