]> git.baikalelectronics.ru Git - kernel.git/commit
mptcp: fix locking for in-kernel listener creation
authorPaolo Abeni <pabeni@redhat.com>
Tue, 7 Feb 2023 13:04:15 +0000 (14:04 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Feb 2023 11:59:40 +0000 (12:59 +0100)
commit8a9cb242ef80b949cb7f3c4675c78bdcf219f7c8
tree644f2f0d7c6c067b97e658af50ebacd0055f17fe
parent9243e5650006d80e73faf0c9e31595fa44d4bf99
mptcp: fix locking for in-kernel listener creation

[ Upstream commit 8f1319551a64b3e2870ffa5bc715723bbd09bc80 ]

For consistency, in mptcp_pm_nl_create_listen_socket(), we need to
call the __mptcp_nmpc_socket() under the msk socket lock.

Note that as a side effect, mptcp_subflow_create_socket() needs a
'nested' lockdep annotation, as it will acquire the subflow (kernel)
socket lock under the in-kernel listener msk socket lock.

The current lack of locking is almost harmless, because the relevant
socket is not exposed to the user space, but in future we will add
more complexity to the mentioned helper, let's play safe.

Fixes: e16701f6ad29 ("mptcp: create the listening socket for new port")
Cc: stable@vger.kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/mptcp/pm_netlink.c
net/mptcp/subflow.c