]> Git Repo - linux.git/commit
ipv6: anycast: complete RCU handling of struct ifacaddr6
authorEric Dumazet <[email protected]>
Fri, 23 Feb 2024 20:10:54 +0000 (20:10 +0000)
committerJakub Kicinski <[email protected]>
Tue, 27 Feb 2024 02:40:34 +0000 (18:40 -0800)
commitc3718936ec47ae811a7ce9a618b6cb1cda835bab
tree4b47a535bf11c39127630a3419a1498e7923e5cd
parent5c237967e632c81db0504cffa26eaa19e7940650
ipv6: anycast: complete RCU handling of struct ifacaddr6

struct ifacaddr6 are already freed after RCU grace period.

Add __rcu qualifier to aca_next pointer, and idev->ac_list

Add relevant rcu_assign_pointer() and dereference accessors.

ipv6_chk_acast_dev() no longer needs to acquire idev->lock.

/proc/net/anycast6 is now purely RCU protected, it no
longer acquires idev->lock.

Similarly in6_dump_addrs() can use RCU protection to iterate
through anycast addresses. It was relying on a mixture of RCU
and RTNL but next patches will get rid of RTNL there.

Signed-off-by: Eric Dumazet <[email protected]>
Reviewed-by: Jiri Pirko <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
include/net/if_inet6.h
net/ipv6/addrconf.c
net/ipv6/anycast.c
This page took 0.06107 seconds and 4 git commands to generate.