mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
ipv6: annotate data-races around idev->cnf.ignore_routes_with_linkdown
idev->cnf.ignore_routes_with_linkdown can be used without any locks, add appropriate annotations. Signed-off-by: Eric Dumazet <edumazet@google.com> Reviewed-by: Jiri Pirko <jiri@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
ddea75d344
commit
fca34cc075
@ -417,7 +417,7 @@ static inline bool ip6_ignore_linkdown(const struct net_device *dev)
|
||||
if (unlikely(!idev))
|
||||
return true;
|
||||
|
||||
return !!idev->cnf.ignore_routes_with_linkdown;
|
||||
return !!READ_ONCE(idev->cnf.ignore_routes_with_linkdown);
|
||||
}
|
||||
|
||||
void inet6_ifa_finish_destroy(struct inet6_ifaddr *ifp);
|
||||
|
@ -566,7 +566,7 @@ static int inet6_netconf_fill_devconf(struct sk_buff *skb, int ifindex,
|
||||
|
||||
if ((all || type == NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN) &&
|
||||
nla_put_s32(skb, NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN,
|
||||
devconf->ignore_routes_with_linkdown) < 0)
|
||||
READ_ONCE(devconf->ignore_routes_with_linkdown)) < 0)
|
||||
goto nla_put_failure;
|
||||
|
||||
out:
|
||||
@ -935,7 +935,7 @@ static void addrconf_linkdown_change(struct net *net, __s32 newf)
|
||||
if (idev) {
|
||||
int changed = (!idev->cnf.ignore_routes_with_linkdown) ^ (!newf);
|
||||
|
||||
idev->cnf.ignore_routes_with_linkdown = newf;
|
||||
WRITE_ONCE(idev->cnf.ignore_routes_with_linkdown, newf);
|
||||
if (changed)
|
||||
inet6_netconf_notify_devconf(dev_net(dev),
|
||||
RTM_NEWNETCONF,
|
||||
@ -956,7 +956,7 @@ static int addrconf_fixup_linkdown(struct ctl_table *table, int *p, int newf)
|
||||
|
||||
net = (struct net *)table->extra2;
|
||||
old = *p;
|
||||
*p = newf;
|
||||
WRITE_ONCE(*p, newf);
|
||||
|
||||
if (p == &net->ipv6.devconf_dflt->ignore_routes_with_linkdown) {
|
||||
if ((!newf) ^ (!old))
|
||||
@ -970,7 +970,7 @@ static int addrconf_fixup_linkdown(struct ctl_table *table, int *p, int newf)
|
||||
}
|
||||
|
||||
if (p == &net->ipv6.devconf_all->ignore_routes_with_linkdown) {
|
||||
net->ipv6.devconf_dflt->ignore_routes_with_linkdown = newf;
|
||||
WRITE_ONCE(net->ipv6.devconf_dflt->ignore_routes_with_linkdown, newf);
|
||||
addrconf_linkdown_change(net, newf);
|
||||
if ((!newf) ^ (!old))
|
||||
inet6_netconf_notify_devconf(net,
|
||||
|
Loading…
Reference in New Issue
Block a user