Lines Matching refs:iml
1803 struct ip_mc_socklist *iml = NULL, *i;
1818 iml = NULL;
1834 iml = sock_kmalloc(sk, sizeof(*iml), GFP_KERNEL);
1835 if (iml == NULL)
1838 memcpy(&iml->multi, imr, sizeof(*imr));
1839 iml->next = inet->mc_list;
1840 iml->sflist = NULL;
1841 iml->sfmode = MCAST_EXCLUDE;
1842 rcu_assign_pointer(inet->mc_list, iml);
1860 static int ip_mc_leave_src(struct sock *sk, struct ip_mc_socklist *iml,
1863 struct ip_sf_socklist *psf = iml->sflist;
1868 return ip_mc_del_src(in_dev, &iml->multi.imr_multiaddr.s_addr,
1869 iml->sfmode, 0, NULL, 0);
1871 err = ip_mc_del_src(in_dev, &iml->multi.imr_multiaddr.s_addr,
1872 iml->sfmode, psf->sl_count, psf->sl_addr, 0);
1873 rcu_assign_pointer(iml->sflist, NULL);
1883 struct ip_mc_socklist *iml;
1885 iml = container_of(rp, struct ip_mc_socklist, rcu);
1887 kfree(iml);
1898 struct ip_mc_socklist *iml, **imlp;
1908 for (imlp = &inet->mc_list; (iml = *imlp) != NULL; imlp = &iml->next) {
1909 if (iml->multi.imr_multiaddr.s_addr != group)
1912 if (iml->multi.imr_ifindex != ifindex)
1915 iml->multi.imr_address.s_addr)
1918 (void) ip_mc_leave_src(sk, iml, in_dev);
1920 rcu_assign_pointer(*imlp, iml->next);
1926 atomic_sub(sizeof(*iml), &sk->sk_omem_alloc);
1927 call_rcu(&iml->rcu, ip_mc_socklist_reclaim);
2325 struct ip_mc_socklist *iml;
2332 while ((iml = inet->mc_list) != NULL) {
2334 rcu_assign_pointer(inet->mc_list, iml->next);
2336 in_dev = inetdev_by_index(net, iml->multi.imr_ifindex);
2337 (void) ip_mc_leave_src(sk, iml, in_dev);
2339 ip_mc_dec_group(in_dev, iml->multi.imr_multiaddr.s_addr);
2343 atomic_sub(sizeof(*iml), &sk->sk_omem_alloc);
2344 call_rcu(&iml->rcu, ip_mc_socklist_reclaim);