[PATCH net-next 0/5] mptcp: annotate lockless access

From: Matthieu Baerts (NGI0)
Date: Fri Feb 02 2024 - 06:44:27 EST


This is a series of 5 patches from Paolo to annotate lockless access.

The MPTCP locking schema is already quite complex. We need to clarify it
and make the lockless access already there consistent, or later changes
will be even harder to follow and understand.

This series goes through all the msk fields accessed in the RX and TX
path and makes the lockless annotation consistent with the in-use
locking schema.

As a bonus, this should fix data races eventually found by fuzzers --
even if we haven't seen many such reports so far.

Patch 1/5 hints we could remove "local_key" and "remote_key" from the
subflow context, and always use the ones from the msk socket, possibly
reducing the context memory usage. That change is left over as a
possible follow-up.

Signed-off-by: Matthieu Baerts (NGI0) <matttbe@xxxxxxxxxx>
---
Paolo Abeni (5):
mptcp: annotate access for msk keys
mptcp: annotate lockless access for the tx path
mptcp: annotate lockless access for RX path fields
mptcp: annotate lockless access for token
mptcp: annotate lockless accesses around read-mostly fields

net/mptcp/options.c | 20 +++++++++----------
net/mptcp/pm.c | 2 +-
net/mptcp/pm_netlink.c | 10 +++++-----
net/mptcp/protocol.c | 52 ++++++++++++++++++++++++++------------------------
net/mptcp/protocol.h | 8 +++++---
net/mptcp/sockopt.c | 2 +-
net/mptcp/subflow.c | 10 ++++++----
7 files changed, 55 insertions(+), 49 deletions(-)
---
base-commit: 747056a9a954d694dac91d1da6cfff5e6f0e3fc6
change-id: 20240202-upstream-net-next-20240202-mptcp-annotate-lockless-access-f7cd0955da5c

Best regards,
--
Matthieu Baerts (NGI0) <matttbe@xxxxxxxxxx>