]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
mptcp: fix recvbuffer adjust on sleeping rcvmsg
authorPaolo Abeni <pabeni@redhat.com>
Mon, 30 Dec 2024 18:12:30 +0000 (19:12 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jan 2025 12:30:07 +0000 (13:30 +0100)
commitcbdb6a4c6a66b28abb329ec81b14c877af4fce7e
tree321915f2cd499b0a537511813d62b943ecd57550
parent09ba95321a269019b5aa8e0c3bc80cf86d91fd18
mptcp: fix recvbuffer adjust on sleeping rcvmsg

commit 449e6912a2522af672e99992e1201a454910864e upstream.

If the recvmsg() blocks after receiving some data - i.e. due to
SO_RCVLOWAT - the MPTCP code will attempt multiple times to
adjust the receive buffer size, wrongly accounting every time the
cumulative of received data - instead of accounting only for the
delta.

Address the issue moving mptcp_rcv_space_adjust just after the
data reception and passing it only the just received bytes.

This also removes an unneeded difference between the TCP and MPTCP
RX code path implementation.

Fixes: 581302298524 ("mptcp: error out earlier on disconnect")
Cc: stable@vger.kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20241230-net-mptcp-rbuf-fixes-v1-1-8608af434ceb@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/mptcp/protocol.c