diff options
Diffstat (limited to 'net/ipv4/tcp_input.c')
-rw-r--r-- | net/ipv4/tcp_input.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 1a8e89fdd331..4f6cfbc57775 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c | |||
@@ -5979,12 +5979,14 @@ int tcp_conn_request(struct request_sock_ops *rsk_ops, | |||
5979 | * timewait bucket, so that all the necessary checks | 5979 | * timewait bucket, so that all the necessary checks |
5980 | * are made in the function processing timewait state. | 5980 | * are made in the function processing timewait state. |
5981 | */ | 5981 | */ |
5982 | if (tmp_opt.saw_tstamp && tcp_death_row.sysctl_tw_recycle) { | 5982 | if (tcp_death_row.sysctl_tw_recycle) { |
5983 | bool strict; | 5983 | bool strict; |
5984 | 5984 | ||
5985 | dst = af_ops->route_req(sk, &fl, req, &strict); | 5985 | dst = af_ops->route_req(sk, &fl, req, &strict); |
5986 | |||
5986 | if (dst && strict && | 5987 | if (dst && strict && |
5987 | !tcp_peer_is_proven(req, dst, true)) { | 5988 | !tcp_peer_is_proven(req, dst, true, |
5989 | tmp_opt.saw_tstamp)) { | ||
5988 | NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_PAWSPASSIVEREJECTED); | 5990 | NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_PAWSPASSIVEREJECTED); |
5989 | goto drop_and_release; | 5991 | goto drop_and_release; |
5990 | } | 5992 | } |
@@ -5993,7 +5995,8 @@ int tcp_conn_request(struct request_sock_ops *rsk_ops, | |||
5993 | else if (!sysctl_tcp_syncookies && | 5995 | else if (!sysctl_tcp_syncookies && |
5994 | (sysctl_max_syn_backlog - inet_csk_reqsk_queue_len(sk) < | 5996 | (sysctl_max_syn_backlog - inet_csk_reqsk_queue_len(sk) < |
5995 | (sysctl_max_syn_backlog >> 2)) && | 5997 | (sysctl_max_syn_backlog >> 2)) && |
5996 | !tcp_peer_is_proven(req, dst, false)) { | 5998 | !tcp_peer_is_proven(req, dst, false, |
5999 | tmp_opt.saw_tstamp)) { | ||
5997 | /* Without syncookies last quarter of | 6000 | /* Without syncookies last quarter of |
5998 | * backlog is filled with destinations, | 6001 | * backlog is filled with destinations, |
5999 | * proven to be alive. | 6002 | * proven to be alive. |