[RFC PATCH 5/6] DO-NOT-MERGE: debug: mptcp: Warn on use of in-kernel PM functions

Mat Martineau posted 6 patches 4 years, 4 months ago
Maintainers: Mat Martineau <mathew.j.martineau@linux.intel.com>, Jonathan Corbet <corbet@lwn.net>, Matthieu Baerts <matthieu.baerts@tessares.net>, Jakub Kicinski <kuba@kernel.org>, "David S. Miller" <davem@davemloft.net>
There is a newer version of this series
[RFC PATCH 5/6] DO-NOT-MERGE: debug: mptcp: Warn on use of in-kernel PM functions
Posted by Mat Martineau 4 years, 4 months ago
Double-check that all relevant call sites are filtered when sockets are
managed by userspace.

Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
---
 net/mptcp/pm_netlink.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c
index 434049836707..affa84099bdd 100644
--- a/net/mptcp/pm_netlink.c
+++ b/net/mptcp/pm_netlink.c
@@ -468,6 +468,8 @@ static void mptcp_pm_create_subflow_or_signal_addr(struct mptcp_sock *msk)
 	struct pm_nl_pernet *pernet;
 	unsigned int subflows_max;
 
+	WARN_ON_ONCE(READ_ONCE(msk->pm.userspace));
+
 	pernet = net_generic(sock_net(sk), pm_nl_pernet_id);
 
 	add_addr_signal_max = mptcp_pm_get_add_addr_signal_max(msk);
@@ -700,6 +702,8 @@ static void mptcp_pm_nl_rm_addr_or_subflow(struct mptcp_sock *msk,
 
 	msk_owned_by_me(msk);
 
+	WARN_ON_ONCE(READ_ONCE(msk->pm.userspace));
+
 	if (!rm_list->nr)
 		return;
 
@@ -1244,6 +1248,8 @@ static bool mptcp_pm_remove_anno_addr(struct mptcp_sock *msk,
 	struct mptcp_rm_list list = { .nr = 0 };
 	bool ret;
 
+	WARN_ON_ONCE(READ_ONCE(msk->pm.userspace));
+
 	list.ids[list.nr++] = addr->id;
 
 	ret = remove_anno_list_by_saddr(msk, addr);
-- 
2.33.0