[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250616233417.1153427-1-kuni1840@gmail.com>
Date: Mon, 16 Jun 2025 16:28:29 -0700
From: Kuniyuki Iwashima <kuni1840@...il.com>
To: "David S. Miller" <davem@...emloft.net>,
David Ahern <dsahern@...nel.org>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>
Cc: Simon Horman <horms@...nel.org>,
Kuniyuki Iwashima <kuniyu@...gle.com>,
Kuniyuki Iwashima <kuni1840@...il.com>,
netdev@...r.kernel.org
Subject: [PATCH v1 net-next 00/15] ipv6: Drop RTNL from mcast.c and anycast.c
From: Kuniyuki Iwashima <kuniyu@...gle.com>
This is a prep series for RCU conversion of RTM_NEWNEIGH, which needs
RTNL during neigh_table.{pconstructor,pdestructor}() touching IPv6
multicast code.
Currently, IPv6 multicast code is protected by lock_sock() and
inet6_dev->mc_lock, and RTNL is not actually needed.
In addition, anycast code is also in the same situation and does not
need RTNL at all.
This series removes RTNL from net/ipv6/{mcast.c,anycast.c} and finally
removes setsockopt_needs_rtnl() from do_ipv6_setsockopt().
Kuniyuki Iwashima (15):
ipv6: ndisc: Remove __in6_dev_get() in
pndisc_{constructor,destructor}().
ipv6: mcast: Replace locking comments with lockdep annotations.
ipv6: mcast: Check inet6_dev->dead under idev->mc_lock in
__ipv6_dev_mc_inc().
ipv6: mcast: Remove mca_get().
ipv6: mcast: Use in6_dev_get() in ipv6_dev_mc_dec().
ipv6: mcast: Don't hold RTNL for IPV6_ADD_MEMBERSHIP and
MCAST_JOIN_GROUP.
ipv6: mcast: Don't hold RTNL for IPV6_DROP_MEMBERSHIP and
MCAST_LEAVE_GROUP.
ipv6: mcast: Don't hold RTNL in ipv6_sock_mc_close().
ipv6: mcast: Don't hold RTNL for MCAST_ socket options.
ipv6: Remove unnecessary ASSERT_RTNL and comment.
ipv6: anycast: Don't use rtnl_dereference().
ipv6: anycast: Don't hold RTNL for IPV6_LEAVE_ANYCAST and
IPV6_ADDRFORM.
ipv6: anycast: Unify two error paths in ipv6_sock_ac_join().
ipv6: anycast: Don't hold RTNL for IPV6_JOIN_ANYCAST.
ipv6: Remove setsockopt_needs_rtnl().
include/linux/netdevice.h | 4 +-
net/core/dev.c | 30 ++--
net/ipv6/addrconf.c | 12 +-
net/ipv6/anycast.c | 92 ++++++-----
net/ipv6/ipv6_sockglue.c | 28 +---
net/ipv6/mcast.c | 321 +++++++++++++++++++-------------------
net/ipv6/ndisc.c | 10 +-
7 files changed, 242 insertions(+), 255 deletions(-)
--
2.49.0
Powered by blists - more mailing lists