]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
tcp: update window_clamp when SO_RCVBUF is set
authorJakub Kicinski <kuba@kernel.org>
Wed, 8 Apr 2026 00:14:38 +0000 (17:14 -0700)
committerPaolo Abeni <pabeni@redhat.com>
Mon, 13 Apr 2026 13:32:35 +0000 (15:32 +0200)
commitb025461303d87923abfaae6cc07ba8a83ddfd844
tree02690b2290e25061ecc9de531ac676146ed9a18d
parentc7211b6e83342c71380c2e40ae46ce4a745b98b6
tcp: update window_clamp when SO_RCVBUF is set

Commit under Fixes moved recomputing the window clamp to
tcp_measure_rcv_mss() (when scaling_ratio changes).
I suspect it missed the fact that we don't recompute the clamp
when rcvbuf is set. Until scaling_ratio changes we are
stuck with the old window clamp which may be based on
the small initial buffer. scaling_ratio may never change.

Inspired by Eric's recent commit d1361840f8c5 ("tcp: fix
SO_RCVLOWAT and RCVBUF autotuning") plumb the user action
thru to TCP and have it update the clamp.

A smaller fix would be to just have tcp_rcvbuf_grow()
adjust the clamp even if SOCK_RCVBUF_LOCK is set.
But IIUC this is what we were trying to get away from
in the first place.

Fixes: a2cbb1603943 ("tcp: Update window clamping condition")
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Reviewed-by: Eric Dumazet <edumaze@google.com>
Link: https://patch.msgid.link/20260408001438.129165-1-kuba@kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
include/linux/net.h
include/net/tcp.h
net/core/sock.c
net/ipv4/af_inet.c
net/ipv4/tcp.c
net/ipv6/af_inet6.c