aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/tcp_ipv6.c
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2016-08-23 14:39:28 -0400
committerDavid S. Miller <davem@davemloft.net>2016-08-24 02:25:29 -0400
commit391bb6be6578829540bc466fc85da44a68148b84 (patch)
treecf9fc107054048a5d19a4f137af56dcd2244d095 /net/ipv6/tcp_ipv6.c
parent4cac8204661a6d1a842e47911933f1e90b392c84 (diff)
ipv6: tcp: get rid of tcp_v6_clear_sk()
Now RCU lookups of IPv6 TCP sockets no longer dereference pinet6, we do not need tcp_v6_clear_sk() anymore. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/tcp_ipv6.c')
-rw-r--r--net/ipv6/tcp_ipv6.c12
1 files changed, 0 insertions, 12 deletions
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index 33df8b8575cc..e0f46439e391 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -1862,17 +1862,6 @@ void tcp6_proc_exit(struct net *net)
1862} 1862}
1863#endif 1863#endif
1864 1864
1865static void tcp_v6_clear_sk(struct sock *sk, int size)
1866{
1867 struct inet_sock *inet = inet_sk(sk);
1868
1869 /* we do not want to clear pinet6 field, because of RCU lookups */
1870 sk_prot_clear_nulls(sk, offsetof(struct inet_sock, pinet6));
1871
1872 size -= offsetof(struct inet_sock, pinet6) + sizeof(inet->pinet6);
1873 memset(&inet->pinet6 + 1, 0, size);
1874}
1875
1876struct proto tcpv6_prot = { 1865struct proto tcpv6_prot = {
1877 .name = "TCPv6", 1866 .name = "TCPv6",
1878 .owner = THIS_MODULE, 1867 .owner = THIS_MODULE,
@@ -1914,7 +1903,6 @@ struct proto tcpv6_prot = {
1914 .compat_setsockopt = compat_tcp_setsockopt, 1903 .compat_setsockopt = compat_tcp_setsockopt,
1915 .compat_getsockopt = compat_tcp_getsockopt, 1904 .compat_getsockopt = compat_tcp_getsockopt,
1916#endif 1905#endif
1917 .clear_sk = tcp_v6_clear_sk,
1918 .diag_destroy = tcp_abort, 1906 .diag_destroy = tcp_abort,
1919}; 1907};
1920 1908