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 2 addresses
this, and is not a drastic change since the subflow lock was being
acquired anyway in mptcp_subflow_send_ack().
v1->v2: Based on Paolo's feedback, fix MIB issue with atomic context in
patch 1 (tested with CONFIG_PREEMPT), and squash patches 2 & 3.
Mat Martineau (2):
mptcp: Avoid acquiring PM lock for subflow priority changes
mptcp: Acquire the subflow socket lock before modifying MP_PRIO flags
net/mptcp/options.c | 2 ++
net/mptcp/pm_netlink.c | 12 ++++++------
net/mptcp/protocol.c | 9 +++++++--
net/mptcp/protocol.h | 1 +
4 files changed, 16 insertions(+), 8 deletions(-)
--
2.36.1