Merge branch 'mptcp-fixes-for-6-4'
authorJakub Kicinski <kuba@kernel.org>
Thu, 22 Jun 2023 05:44:59 +0000 (22:44 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 22 Jun 2023 05:45:00 +0000 (22:45 -0700)
commit533aa0baaa1fe1f9f7f3ae0a368c22df8f3cf127
treefb1230e45df2a73eb6443f9c89793f4c6fb10d3c
parent59bb14bda2f86550d10e65c9091ba442a0ac4b45
parent57fc0f1ceaa4016354cf6f88533e20b56190e41a
Merge branch 'mptcp-fixes-for-6-4'

Matthieu Baerts says:

====================
mptcp: fixes for 6.4

Patch 1 correctly handles disconnect() failures that can happen in some
specific cases: now the socket state is set as unconnected as expected.
That fixes an issue introduced in v6.2.

Patch 2 fixes a divide by zero bug in mptcp_recvmsg() with a fix similar
to a recent one from Eric Dumazet for TCP introducing sk_wait_pending
flag. It should address an issue present in MPTCP from almost the
beginning, from v5.9.

Patch 3 fixes a possible list corruption on passive MPJ even if the race
seems very unlikely, better be safe than sorry. The possible issue is
present from v5.17.

Patch 4 consolidates fallback and non fallback state machines to avoid
leaking some MPTCP sockets. The fix is likely needed for versions from
v5.11.

Patch 5 drops code that is no longer used after the introduction of
patch 4/6. This is not really a fix but this patch can probably land in
the -net tree as well not to leave unused code.

Patch 6 ensures listeners are unhashed before updating their sk status
to avoid possible deadlocks when diag info are going to be retrieved
with a lock. Even if it should not be visible with the way we are
currently getting diag info, the issue is present from v5.17.
====================

Link: https://lore.kernel.org/r/20230620-upstream-net-20230620-misc-fixes-for-v6-4-v1-0-f36aa5eae8b9@tessares.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>