diff options
author | Jakub Kicinski <kuba@kernel.org> | 2025-04-24 02:28:06 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2025-04-24 02:28:07 +0300 |
commit | d861a5dbb960c5619ea78ae9f121b9b460685429 (patch) | |
tree | 6ee40185896b522ad146e04e7b194b80be61b98c | |
parent | 491ef1117c56476f199b481f8c68820fe4c3a7c2 (diff) | |
parent | ce72fea219c13c6485503928181c547d0e26756b (diff) | |
download | linux-d861a5dbb960c5619ea78ae9f121b9b460685429.tar.xz |
Merge branch 'mptcp-pm-defer-freeing-userspace-pm-entries'
Matthieu Baerts says:
====================
mptcp: pm: Defer freeing userspace pm entries
Here are two unrelated fixes for MPTCP:
- Patch 1: free userspace PM entry with RCU helpers. A fix for v6.14.
- Patch 2: avoid a warning when running diag.sh selftest. A fix for
v6.15-rc1.
====================
Link: https://patch.msgid.link/20250421-net-mptcp-pm-defer-freeing-v1-0-e731dc6e86b9@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r-- | net/mptcp/pm_userspace.c | 6 | ||||
-rwxr-xr-x | tools/testing/selftests/net/mptcp/diag.sh | 5 |
2 files changed, 7 insertions, 4 deletions
diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c index 2cb62f026b1f..a715dcbe0146 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -337,7 +337,11 @@ int mptcp_pm_nl_remove_doit(struct sk_buff *skb, struct genl_info *info) release_sock(sk); - sock_kfree_s(sk, match, sizeof(*match)); + kfree_rcu_mightsleep(match); + /* Adjust sk_omem_alloc like sock_kfree_s() does, to match + * with allocation of this memory by sock_kmemdup() + */ + atomic_sub(sizeof(*match), &sk->sk_omem_alloc); err = 0; out: diff --git a/tools/testing/selftests/net/mptcp/diag.sh b/tools/testing/selftests/net/mptcp/diag.sh index 4f55477ffe08..e7a75341f0f3 100755 --- a/tools/testing/selftests/net/mptcp/diag.sh +++ b/tools/testing/selftests/net/mptcp/diag.sh @@ -206,9 +206,8 @@ chk_dump_one() local token local msg - ss_token="$(ss -inmHMN $ns | grep 'token:' |\ - head -n 1 |\ - sed 's/.*token:\([0-9a-f]*\).*/\1/')" + ss_token="$(ss -inmHMN $ns | + mptcp_lib_get_info_value "token" "token")" token="$(ip netns exec $ns ./mptcp_diag -t $ss_token |\ awk -F':[ \t]+' '/^token/ {print $2}')" |