diff options
author | Eric Dumazet <edumazet@google.com> | 2015-10-06 17:49:58 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-10-07 08:08:58 -0400 |
commit | acb4a6bfc80ddeea4c44074dd630f916259e909e (patch) | |
tree | c7745772d9dac017daf2754ed3e46be9149d7659 /net/ipv4 | |
parent | 686a562449af96a0e8c18c6f1b87b47ff8c36de8 (diff) |
tcp: ensure prior synack rtx behavior with small backlogs
Some applications use a listen() backlog of 1.
Prior kernels were silently enforcing a qlen_log of 4, so that we were
sending up to /proc/sys/net/ipv4/tcp_synack_retries SYNACK messages.
Fixes: ef547f2ac16b ("tcp: remove max_qlen_log")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/inet_connection_sock.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c index 89eedfbd4ad5..514b9e910bd4 100644 --- a/net/ipv4/inet_connection_sock.c +++ b/net/ipv4/inet_connection_sock.c | |||
@@ -579,7 +579,7 @@ static void reqsk_timer_handler(unsigned long data) | |||
579 | * ones are about to clog our table. | 579 | * ones are about to clog our table. |
580 | */ | 580 | */ |
581 | qlen = reqsk_queue_len(queue); | 581 | qlen = reqsk_queue_len(queue); |
582 | if ((qlen << 1) > sk_listener->sk_max_ack_backlog) { | 582 | if ((qlen << 1) > max(8U, sk_listener->sk_max_ack_backlog)) { |
583 | int young = reqsk_queue_len_young(queue) << 1; | 583 | int young = reqsk_queue_len_young(queue) << 1; |
584 | 584 | ||
585 | while (thresh > 2) { | 585 | while (thresh > 2) { |