|
@@ -194,7 +194,7 @@ struct ipv6_pinfo {
|
|
|
sndflow:1,
|
|
|
repflow:1,
|
|
|
pmtudisc:3,
|
|
|
- ipv6only:1,
|
|
|
+ padding:1, /* 1 bit hole */
|
|
|
srcprefs:3, /* 001: prefer temporary address
|
|
|
* 010: prefer public address
|
|
|
* 100: prefer care-of address
|
|
@@ -273,8 +273,8 @@ static inline void inet_sk_copy_descendant(struct sock *sk_to,
|
|
|
__inet_sk_copy_descendant(sk_to, sk_from, ancestor_size);
|
|
|
}
|
|
|
|
|
|
-#define __ipv6_only_sock(sk) (inet6_sk(sk)->ipv6only)
|
|
|
-#define ipv6_only_sock(sk) ((sk)->sk_family == PF_INET6 && __ipv6_only_sock(sk))
|
|
|
+#define __ipv6_only_sock(sk) (sk->sk_ipv6only)
|
|
|
+#define ipv6_only_sock(sk) (__ipv6_only_sock(sk))
|
|
|
#define ipv6_sk_rxinfo(sk) ((sk)->sk_family == PF_INET6 && \
|
|
|
inet6_sk(sk)->rxopt.bits.rxinfo)
|
|
|
|
|
@@ -287,8 +287,8 @@ static inline const struct in6_addr *inet6_rcv_saddr(const struct sock *sk)
|
|
|
|
|
|
static inline int inet_v6_ipv6only(const struct sock *sk)
|
|
|
{
|
|
|
- return likely(sk->sk_state != TCP_TIME_WAIT) ?
|
|
|
- ipv6_only_sock(sk) : inet_twsk(sk)->tw_ipv6only;
|
|
|
+ /* ipv6only field is at same position for timewait and other sockets */
|
|
|
+ return ipv6_only_sock(sk);
|
|
|
}
|
|
|
#else
|
|
|
#define __ipv6_only_sock(sk) 0
|