diff options
-rw-r--r-- | net/ipv4/ip_sockglue.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c index 455e75bcb167..c373a9ad4555 100644 --- a/net/ipv4/ip_sockglue.c +++ b/net/ipv4/ip_sockglue.c | |||
@@ -303,7 +303,7 @@ int ip_ra_control(struct sock *sk, unsigned char on, | |||
303 | } | 303 | } |
304 | /* dont let ip_call_ra_chain() use sk again */ | 304 | /* dont let ip_call_ra_chain() use sk again */ |
305 | ra->sk = NULL; | 305 | ra->sk = NULL; |
306 | rcu_assign_pointer(*rap, ra->next); | 306 | RCU_INIT_POINTER(*rap, ra->next); |
307 | spin_unlock_bh(&ip_ra_lock); | 307 | spin_unlock_bh(&ip_ra_lock); |
308 | 308 | ||
309 | if (ra->destructor) | 309 | if (ra->destructor) |
@@ -325,7 +325,7 @@ int ip_ra_control(struct sock *sk, unsigned char on, | |||
325 | new_ra->sk = sk; | 325 | new_ra->sk = sk; |
326 | new_ra->destructor = destructor; | 326 | new_ra->destructor = destructor; |
327 | 327 | ||
328 | new_ra->next = ra; | 328 | RCU_INIT_POINTER(new_ra->next, ra); |
329 | rcu_assign_pointer(*rap, new_ra); | 329 | rcu_assign_pointer(*rap, new_ra); |
330 | sock_hold(sk); | 330 | sock_hold(sk); |
331 | spin_unlock_bh(&ip_ra_lock); | 331 | spin_unlock_bh(&ip_ra_lock); |