All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 mptcp-net 0/5] mptcp: fix fallback-related races
@ 2025-07-11  9:29 Paolo Abeni
  2025-07-11  9:29 ` [PATCH v4 mptcp-net 1/5] mptcp: make fallback action and fallback decision atomic Paolo Abeni
                   ` (5 more replies)
  0 siblings, 6 replies; 10+ messages in thread
From: Paolo Abeni @ 2025-07-11  9:29 UTC (permalink / raw)
  To: mptcp

This series contains 3 fixes somewhat related to various races we have
while handling fallback and 2 small follow-up likely more suited for
net-next.

The root cause of the issues addressed here is that the check for
"we can fallback to tcp now" and the related action are not atomic. That
also applies to fallback due to MP_FAIL - where the window race is even
wider.

Address the issue introducing an additional spinlock to bundle together
all the relevant events, as per patch 1 and 2.

Note that mptcp_disconnect() unconditionally
clears the fallback status (zeroing msk->flags) but don't tuch the
`allows_infinite_fallback` flag. Such issue is addressed in patch 3.

Patch 4 cleans up a bit the fallback code, introducing specific MIB for
each FB reason, and patch 5 drops the, hopefully now redundant
pr_fallback().
---
v3 -> v4:
 - fic MIB exposed names

v2 -> v3:
 - mptcp_do_fallback  -> mptcp_try_fallback
 - refactored patch 3/5
 - changed mibs names, increment fail only when the protocol mandate it
 - fix W=1 warn in patch 5/5

Paolo Abeni (5):
  mptcp: make fallback action and fallback decision atomic
  mptcp: plug races between subflow fail and subflow creation
  mptcp: reset fallback status gracefully at disconnect() time
  mptcp: track fallbacks accurately via mibs
  mptcp: remove pr_fallback()

 net/mptcp/ctrl.c     |  4 +-
 net/mptcp/mib.c      |  5 +++
 net/mptcp/mib.h      |  7 ++++
 net/mptcp/options.c  |  6 ++-
 net/mptcp/pm.c       |  8 +++-
 net/mptcp/protocol.c | 97 ++++++++++++++++++++++++++++++++++----------
 net/mptcp/protocol.h | 35 ++++++++--------
 net/mptcp/subflow.c  | 40 ++++++++++--------
 8 files changed, 140 insertions(+), 62 deletions(-)

-- 
2.50.0


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2025-07-11 16:14 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-11  9:29 [PATCH v4 mptcp-net 0/5] mptcp: fix fallback-related races Paolo Abeni
2025-07-11  9:29 ` [PATCH v4 mptcp-net 1/5] mptcp: make fallback action and fallback decision atomic Paolo Abeni
2025-07-11  9:29 ` [PATCH v4 mptcp-net 2/5] mptcp: plug races between subflow fail and subflow creation Paolo Abeni
2025-07-11  9:29 ` [PATCH v4 mptcp-net 3/5] mptcp: reset fallback status gracefully at disconnect() time Paolo Abeni
2025-07-11  9:29 ` [PATCH v4 mptcp-net 4/5] mptcp: track fallbacks accurately via mibs Paolo Abeni
2025-07-11  9:29 ` [PATCH v4 mptcp-net 5/5] mptcp: remove pr_fallback() Paolo Abeni
2025-07-11  9:36 ` [PATCH v4 mptcp-net 0/5] mptcp: fix fallback-related races Matthieu Baerts
2025-07-11 10:04   ` Matthieu Baerts
2025-07-11 13:51   ` Paolo Abeni
2025-07-11 16:14     ` Matthieu Baerts

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.