aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_input.c
diff options
context:
space:
mode:
authorEric Dumazet <[email protected]>2025-07-07 21:38:59 +0000
committerJakub Kicinski <[email protected]>2025-07-10 02:24:10 +0000
commit1a03edeb84e6e3b9c6ca5a642557bced93d54434 (patch)
tree70214311353feee546f842e1629027ae359b5648 /net/ipv4/tcp_input.c
parentnet/sched: Abort __tc_modify_qdisc if parent class does not exist (diff)
downloadkernel-1a03edeb84e6e3b9c6ca5a642557bced93d54434.tar.gz
kernel-1a03edeb84e6e3b9c6ca5a642557bced93d54434.zip
tcp: refine sk_rcvbuf increase for ooo packets
When a passive flow has not been accepted yet, it is not wise to increase sk_rcvbuf when receiving ooo packets. A very busy server might tune down tcp_rmem[1] to better control how much memory can be used by sockets waiting in its listeners accept queues. Fixes: 63ad7dfedfae ("tcp: adjust rcvbuf in presence of reorders") Signed-off-by: Eric Dumazet <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'net/ipv4/tcp_input.c')
-rw-r--r--net/ipv4/tcp_input.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 12c2e6fc85c6..68bc79eb9019 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -5181,7 +5181,9 @@ end:
skb_condense(skb);
skb_set_owner_r(skb, sk);
}
- tcp_rcvbuf_grow(sk);
+ /* do not grow rcvbuf for not-yet-accepted or orphaned sockets. */
+ if (sk->sk_socket)
+ tcp_rcvbuf_grow(sk);
}
static int __must_check tcp_queue_rcv(struct sock *sk, struct sk_buff *skb,