Commit acb4a6bf authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller

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: ef547f2a ("tcp: remove max_qlen_log")
Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 686a5624
...@@ -579,7 +579,7 @@ static void reqsk_timer_handler(unsigned long data) ...@@ -579,7 +579,7 @@ static void reqsk_timer_handler(unsigned long data)
* ones are about to clog our table. * ones are about to clog our table.
*/ */
qlen = reqsk_queue_len(queue); qlen = reqsk_queue_len(queue);
if ((qlen << 1) > sk_listener->sk_max_ack_backlog) { if ((qlen << 1) > max(8U, sk_listener->sk_max_ack_backlog)) {
int young = reqsk_queue_len_young(queue) << 1; int young = reqsk_queue_len_young(queue) << 1;
while (thresh > 2) { while (thresh > 2) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment