When working with Kishen on the userspace PM, the locking code in
mptcp_pm_nl_mp_prio_send_ack() caught my attention. The
release-and-reacquire of the PM lock in that function was requiring the
userspace PM code to grab that lock, even though nothing protected by
that lock was being accessed. Patch 1 addresses this.
While investigating that issue, I realized that
mptcp_pm_nl_mp_prio_send_ack() was not holding the subflow socket lock
while modifying several parts of the subflow context. Patch 3 addresses
this, and is not a drastic change since the subflow lock was being
acquired anyway in mptcp_subflow_send_ack(). Patch 2 is a prerequisite
patch adding a __mptcp_subflow_send_ack() helper to use in patch 3 when
the subflow is already locked.
Mat Martineau (3):
mptcp: Avoid acquiring PM lock for subflow priority changes
mptcp: Add a variant of mptcp_subflow_send_ack() for locked subflows
mptcp: Acquire the subflow socket lock before modifying MP_PRIO flags
net/mptcp/pm_netlink.c | 11 ++++++-----
net/mptcp/protocol.c | 9 +++++++--
net/mptcp/protocol.h | 1 +
3 files changed, 14 insertions(+), 7 deletions(-)
--
2.37.0