MPTCP Linux Development
 help / color / mirror / Atom feed
* [PATCH mptcp-next 0/2] mptcp: pm: fix reachable extra_subflows guards
@ 2026-08-31  9:32 Tao Cui
  2026-08-31  9:32 ` [PATCH mptcp-next 1/2] mptcp: pm: bound extra_subflows admission on userspace PM Tao Cui
                   ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Tao Cui @ 2026-08-31  9:32 UTC (permalink / raw)
  To: mptcp; +Cc: matttbe, geliang, cuitao, cui.tao

From: Tao Cui <cuitao@kylinos.cn>

Hi,

Following up on issue #629, here is a fix series for the two paths
reported against e99c1ca871 ("mptcp: pm: add WARN_ON_ONCE guards
on extra_subflows underflow").

Patch 1 bounds the userspace PM admission at U8_MAX, so the u8 can
no longer be wrapped by a peer establishing more than 255 subflows.

Patch 2 addresses the disconnect() vs MP_JOIN race: as discussed,
the decrement sites now check the msk state first and skip the
accounting when the msk is already in TCP_CLOSE, as the state is set
before mptcp_pm_data_reset() clears the counters, and once the msk
is closed the accounting is not relevant anymore. No new lock is
involved. The guards themselves are downgraded to a clamp with a
rate-limited pr_warn(), as the warn was reachable and turned into a
remotely triggerable panic on panic_on_warn kernels.

Both patches carry a Link: to the issue with the detailed analysis.

Validated with the virtme CI (mptcp selftests), and with a stress
repro comparing the base kernel and the patched one: on the base
kernel the server accepts 256 MP_JOINs and the counter wraps to 0,
with the patches admission stops at 255 and the leftover imbalance
only shows up as a rate-limited warning.

Tao Cui (2):
  mptcp: pm: bound extra_subflows admission on userspace PM
  mptcp: pm: skip extra_subflows accounting on disconnected msk

 net/mptcp/pm.c       | 22 +++++++++++++++++++---
 net/mptcp/protocol.h | 14 ++++++++++++--
 2 files changed, 31 insertions(+), 5 deletions(-)

--
2.43.0

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

end of thread, other threads:[~2026-09-03  9:13 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-31  9:32 [PATCH mptcp-next 0/2] mptcp: pm: fix reachable extra_subflows guards Tao Cui
2026-08-31  9:32 ` [PATCH mptcp-next 1/2] mptcp: pm: bound extra_subflows admission on userspace PM Tao Cui
2026-09-02 16:39   ` Matthieu Baerts
2026-09-03  3:42     ` quanyeyang
2026-09-03  8:57       ` Tao Cui
2026-09-03  8:55     ` Tao Cui
2026-09-03  9:13       ` Matthieu Baerts
2026-08-31  9:32 ` [PATCH mptcp-next 2/2] mptcp: pm: skip extra_subflows accounting on disconnected msk Tao Cui
2026-08-31 10:11   ` sashiko-bot
2026-08-31 13:00     ` Tao Cui
2026-09-02 16:32       ` Matthieu Baerts
2026-09-02 16:56   ` Matthieu Baerts
2026-08-31 10:25 ` [PATCH mptcp-next 0/2] mptcp: pm: fix reachable extra_subflows guards MPTCP CI

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox