Message ID | 1381533451-29018-6-git-send-email-paulmck@linux.vnet.ibm.com |
---|---|
State | Not Applicable, archived |
Delegated to: | David Miller |
Headers | show |
diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c index d9c4f113d709..a0e7f176e9c8 100644 --- a/net/ipv4/ip_sockglue.c +++ b/net/ipv4/ip_sockglue.c @@ -269,7 +269,8 @@ int ip_ra_control(struct sock *sk, unsigned char on, } /* dont let ip_call_ra_chain() use sk again */ ra->sk = NULL; - rcu_assign_pointer(*rap, ra->next); + /* Both --rcu and visible, so ACCESS_ONCE() is OK. */ + ACCESS_ONCE(*rap) = ra->next; spin_unlock_bh(&ip_ra_lock); if (ra->destructor)