summaryrefslogtreecommitdiff
path: root/include/net/netns
diff options
context:
space:
mode:
authorKuniyuki Iwashima <kuniyu@google.com>2026-06-04 22:46:32 +0000
committerJakub Kicinski <kuba@kernel.org>2026-06-08 17:06:24 -0700
commita4c98421720a79587ad6c528f81fe7976a45976b (patch)
tree807b1deec5ca9746a43954339f158f9cade44f20 /include/net/netns
parent2290727b2fdb9f56f6fa2e06b4c5061c4f28e2df (diff)
downloadlinux-next-a4c98421720a79587ad6c528f81fe7976a45976b.tar.gz
linux-next-a4c98421720a79587ad6c528f81fe7976a45976b.zip
ip6mr: Replace RTNL with a dedicated mutex for MFC.
ip6mr does not have rtnetlink interface for MFC unlike ipmr, which uses dev_get_by_index_rcu() to set struct mfcctl.mfcc_parent. ip6mr_mfc_add() and ip6mr_mfc_delete() are called under RTNL from ip6_mroute_setsockopt() only. There are no RTNL dependant, but ip6_mroute_setsockopt() reuses RTNL just for mrt->mfc_hash and mrt->mfc_cache_list. Let's replace RTNL with a new per-netns mutex. Later, ip6mr_notifier_ops and ipmr_seq will be moved under CONFIG_IPV6_MROUTE. Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com> Link: https://patch.msgid.link/20260604224712.3209821-15-kuniyu@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include/net/netns')
-rw-r--r--include/net/netns/ipv6.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/net/netns/ipv6.h b/include/net/netns/ipv6.h
index 875916d60bfe..668f10498c5c 100644
--- a/include/net/netns/ipv6.h
+++ b/include/net/netns/ipv6.h
@@ -112,6 +112,7 @@ struct netns_ipv6 {
struct list_head mr6_tables;
struct fib_rules_ops *mr6_rules_ops;
#endif
+ struct mutex mfc_mutex;
#endif
atomic_t dev_addr_genid;
atomic_t fib6_sernum;