diff options
author | Kuniyuki Iwashima <kuniyu@google.com> | 2025-07-02 16:01:26 -0700 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2025-07-08 18:32:38 -0700 |
commit | e6e14d582dd2cbee362c48a1865f8d03ca0a5611 (patch) | |
tree | a88f205a7903e390331a3d662c54793e2fb4f6b3 /scripts/lib/kdoc/kdoc_parser.py | |
parent | 1e589db3892efde1f76c33ffd2a9da31a5883a3b (diff) |
ipv6: mcast: Don't hold RTNL for MCAST_ socket options.
In ip6_mc_source() and ip6_mc_msfilter(), per-socket mld data is
protected by lock_sock() and inet6_dev->mc_lock is also held for
some per-interface functions.
ip6_mc_find_dev_rtnl() only depends on RTNL. If we want to remove
it, we need to check inet6_dev->dead under mc_lock to close the race
with addrconf_ifdown(), as mentioned earlier.
Let's do that and drop RTNL for the rest of MCAST_ socket options.
Note that ip6_mc_msfilter() has unnecessary lock dances and they
are integrated into one to avoid the last-minute error and simplify
the error handling.
Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20250702230210.3115355-10-kuni1840@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'scripts/lib/kdoc/kdoc_parser.py')
0 files changed, 0 insertions, 0 deletions