tcp: move duplicate code from tcp_v4_init_sock()/tcp_v6_init_sock()
authorNeal Cardwell <ncardwell@google.com>
Thu, 19 Apr 2012 09:55:21 +0000 (09:55 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 21 Apr 2012 20:36:42 +0000 (16:36 -0400)
commit900f65d361d333c949ef76a828343075f4fdf523
tree8b4474c6c9df1fcad4d946c64bcc1535450d0927
parente66e9a31474dcce5be6f1186dc933d8a991c707b
tcp: move duplicate code from tcp_v4_init_sock()/tcp_v6_init_sock()

This commit moves the (substantial) common code shared between
tcp_v4_init_sock() and tcp_v6_init_sock() to a new address-family
independent function, tcp_init_sock().

Centralizing this functionality should help avoid drift issues,
e.g. where the IPv4 side is updated without a corresponding update to
IPv6. There was already some drift: IPv4 initialized snd_cwnd to
TCP_INIT_CWND, while the IPv6 side was still initializing snd_cwnd to
2 (in this case it should not matter, since snd_cwnd is also
initialized in tcp_init_metrics(), but the general risks and
maintenance overhead remain).

When diffing the old and new code, note that new tcp_init_sock()
function uses the order of steps from the tcp_v4_init_sock()
implementation (the order is slightly different in
tcp_v6_init_sock()).

Signed-off-by: Neal Cardwell <ncardwell@google.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/tcp.h
net/ipv4/tcp.c
net/ipv4/tcp_ipv4.c
net/ipv6/tcp_ipv6.c