|
@@ -1249,7 +1249,7 @@ void ip_mc_inc_group(struct in_device *in_dev, __be32 addr)
|
|
|
|
|
|
im->next_rcu = in_dev->mc_list;
|
|
im->next_rcu = in_dev->mc_list;
|
|
in_dev->mc_count++;
|
|
in_dev->mc_count++;
|
|
- RCU_INIT_POINTER(in_dev->mc_list, im);
|
|
|
|
|
|
+ rcu_assign_pointer(in_dev->mc_list, im);
|
|
|
|
|
|
#ifdef CONFIG_IP_MULTICAST
|
|
#ifdef CONFIG_IP_MULTICAST
|
|
igmpv3_del_delrec(in_dev, im->multiaddr);
|
|
igmpv3_del_delrec(in_dev, im->multiaddr);
|
|
@@ -1821,7 +1821,7 @@ int ip_mc_join_group(struct sock *sk , struct ip_mreqn *imr)
|
|
iml->next_rcu = inet->mc_list;
|
|
iml->next_rcu = inet->mc_list;
|
|
iml->sflist = NULL;
|
|
iml->sflist = NULL;
|
|
iml->sfmode = MCAST_EXCLUDE;
|
|
iml->sfmode = MCAST_EXCLUDE;
|
|
- RCU_INIT_POINTER(inet->mc_list, iml);
|
|
|
|
|
|
+ rcu_assign_pointer(inet->mc_list, iml);
|
|
ip_mc_inc_group(in_dev, addr);
|
|
ip_mc_inc_group(in_dev, addr);
|
|
err = 0;
|
|
err = 0;
|
|
done:
|
|
done:
|
|
@@ -2008,7 +2008,7 @@ int ip_mc_source(int add, int omode, struct sock *sk, struct
|
|
atomic_sub(IP_SFLSIZE(psl->sl_max), &sk->sk_omem_alloc);
|
|
atomic_sub(IP_SFLSIZE(psl->sl_max), &sk->sk_omem_alloc);
|
|
kfree_rcu(psl, rcu);
|
|
kfree_rcu(psl, rcu);
|
|
}
|
|
}
|
|
- RCU_INIT_POINTER(pmc->sflist, newpsl);
|
|
|
|
|
|
+ rcu_assign_pointer(pmc->sflist, newpsl);
|
|
psl = newpsl;
|
|
psl = newpsl;
|
|
}
|
|
}
|
|
rv = 1; /* > 0 for insert logic below if sl_count is 0 */
|
|
rv = 1; /* > 0 for insert logic below if sl_count is 0 */
|
|
@@ -2111,7 +2111,7 @@ int ip_mc_msfilter(struct sock *sk, struct ip_msfilter *msf, int ifindex)
|
|
} else
|
|
} else
|
|
(void) ip_mc_del_src(in_dev, &msf->imsf_multiaddr, pmc->sfmode,
|
|
(void) ip_mc_del_src(in_dev, &msf->imsf_multiaddr, pmc->sfmode,
|
|
0, NULL, 0);
|
|
0, NULL, 0);
|
|
- RCU_INIT_POINTER(pmc->sflist, newpsl);
|
|
|
|
|
|
+ rcu_assign_pointer(pmc->sflist, newpsl);
|
|
pmc->sfmode = msf->imsf_fmode;
|
|
pmc->sfmode = msf->imsf_fmode;
|
|
err = 0;
|
|
err = 0;
|
|
done:
|
|
done:
|