summaryrefslogtreecommitdiffstats
path: root/net/ipv4/inet_connection_sock.c
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2015-10-06 23:49:58 +0200
committerDavid S. Miller <davem@davemloft.net>2015-10-07 14:08:58 +0200
commitacb4a6bfc80ddeea4c44074dd630f916259e909e (patch)
treec7745772d9dac017daf2754ed3e46be9149d7659 /net/ipv4/inet_connection_sock.c
parentnet: ipv4: tcp.c Fixed an assignment coding style issue (diff)
downloadlinux-acb4a6bfc80ddeea4c44074dd630f916259e909e.tar.xz
linux-acb4a6bfc80ddeea4c44074dd630f916259e909e.zip
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/inet_connection_sock.c')
-rw-r--r--net/ipv4/inet_connection_sock.c2
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)
* ones are about to clog our table.
*/
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;
while (thresh > 2) {