|
|
@@ -200,30 +200,6 @@
|
|
|
#endif /* __UAPI_DEF_IN6_ADDR */
|
|
|
|
|
|
#if __UAPI_DEF_SOCKADDR_IN6
|
|
|
---- a/net/ipv6/af_inet6.c
|
|
|
-+++ b/net/ipv6/af_inet6.c
|
|
|
-@@ -62,6 +62,7 @@
|
|
|
- #endif
|
|
|
-
|
|
|
- #include <asm/uaccess.h>
|
|
|
-+#include <asm/unaligned.h>
|
|
|
- #include <linux/mroute6.h>
|
|
|
-
|
|
|
- MODULE_AUTHOR("Cast of dozens");
|
|
|
-@@ -679,11 +680,12 @@ bool ipv6_opt_accepted(const struct sock
|
|
|
- {
|
|
|
- const struct ipv6_pinfo *np = inet6_sk(sk);
|
|
|
- const struct inet6_skb_parm *opt = IP6CB(skb);
|
|
|
-+ unsigned char *header = skb_network_header(skb);
|
|
|
-
|
|
|
- if (np->rxopt.all) {
|
|
|
- if ((opt->hop && (np->rxopt.bits.hopopts ||
|
|
|
- np->rxopt.bits.ohopopts)) ||
|
|
|
-- (ip6_flowinfo((struct ipv6hdr *) skb_network_header(skb)) &&
|
|
|
-+ (ip6_flowinfo((struct ipv6hdr *)net_hdr_word(header)) &&
|
|
|
- np->rxopt.bits.rxflow) ||
|
|
|
- (opt->srcrt && (np->rxopt.bits.srcrt ||
|
|
|
- np->rxopt.bits.osrcrt)) ||
|
|
|
--- a/net/ipv6/tcp_ipv6.c
|
|
|
+++ b/net/ipv6/tcp_ipv6.c
|
|
|
@@ -65,6 +65,7 @@
|