aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_diag.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv4/tcp_diag.c')
-rw-r--r--net/ipv4/tcp_diag.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/net/ipv4/tcp_diag.c b/net/ipv4/tcp_diag.c
index 1a89a03c449b..6f2d6f2276b9 100644
--- a/net/ipv4/tcp_diag.c
+++ b/net/ipv4/tcp_diag.c
@@ -81,7 +81,7 @@ static int tcpdiag_fill(struct sk_buff *skb, struct sock *sk,
81 r->id.tcpdiag_cookie[1] = (u32)(((unsigned long)sk >> 31) >> 1); 81 r->id.tcpdiag_cookie[1] = (u32)(((unsigned long)sk >> 31) >> 1);
82 82
83 if (r->tcpdiag_state == TCP_TIME_WAIT) { 83 if (r->tcpdiag_state == TCP_TIME_WAIT) {
84 struct tcp_tw_bucket *tw = (struct tcp_tw_bucket*)sk; 84 const struct inet_timewait_sock *tw = inet_twsk(sk);
85 long tmo = tw->tw_ttd - jiffies; 85 long tmo = tw->tw_ttd - jiffies;
86 if (tmo < 0) 86 if (tmo < 0)
87 tmo = 0; 87 tmo = 0;
@@ -99,10 +99,12 @@ static int tcpdiag_fill(struct sk_buff *skb, struct sock *sk,
99 r->tcpdiag_inode = 0; 99 r->tcpdiag_inode = 0;
100#ifdef CONFIG_IP_TCPDIAG_IPV6 100#ifdef CONFIG_IP_TCPDIAG_IPV6
101 if (r->tcpdiag_family == AF_INET6) { 101 if (r->tcpdiag_family == AF_INET6) {
102 const struct tcp6_timewait_sock *tcp6tw = tcp6_twsk(sk);
103
102 ipv6_addr_copy((struct in6_addr *)r->id.tcpdiag_src, 104 ipv6_addr_copy((struct in6_addr *)r->id.tcpdiag_src,
103 &tw->tw_v6_rcv_saddr); 105 &tcp6tw->tw_v6_rcv_saddr);
104 ipv6_addr_copy((struct in6_addr *)r->id.tcpdiag_dst, 106 ipv6_addr_copy((struct in6_addr *)r->id.tcpdiag_dst,
105 &tw->tw_v6_daddr); 107 &tcp6tw->tw_v6_daddr);
106 } 108 }
107#endif 109#endif
108 nlh->nlmsg_len = skb->tail - b; 110 nlh->nlmsg_len = skb->tail - b;
@@ -239,7 +241,7 @@ static int tcpdiag_get_exact(struct sk_buff *in_skb, const struct nlmsghdr *nlh)
239out: 241out:
240 if (sk) { 242 if (sk) {
241 if (sk->sk_state == TCP_TIME_WAIT) 243 if (sk->sk_state == TCP_TIME_WAIT)
242 tcp_tw_put((struct tcp_tw_bucket*)sk); 244 inet_twsk_put((struct inet_timewait_sock *)sk);
243 else 245 else
244 sock_put(sk); 246 sock_put(sk);
245 } 247 }