Lines Matching defs:iml
2176 struct ip_mc_socklist *iml, *i;
2207 iml = sock_kmalloc(sk, sizeof(*iml), GFP_KERNEL);
2208 if (!iml)
2211 memcpy(&iml->multi, imr, sizeof(*imr));
2212 iml->next_rcu = inet->mc_list;
2213 iml->sflist = NULL;
2214 iml->sfmode = mode;
2215 rcu_assign_pointer(inet->mc_list, iml);
2238 static int ip_mc_leave_src(struct sock *sk, struct ip_mc_socklist *iml,
2241 struct ip_sf_socklist *psf = rtnl_dereference(iml->sflist);
2246 return ip_mc_del_src(in_dev, &iml->multi.imr_multiaddr.s_addr,
2247 iml->sfmode, 0, NULL, 0);
2249 err = ip_mc_del_src(in_dev, &iml->multi.imr_multiaddr.s_addr,
2250 iml->sfmode, psf->sl_count, psf->sl_addr, 0);
2251 RCU_INIT_POINTER(iml->sflist, NULL);
2261 struct ip_mc_socklist *iml;
2278 (iml = rtnl_dereference(*imlp)) != NULL;
2279 imlp = &iml->next_rcu) {
2280 if (iml->multi.imr_multiaddr.s_addr != group)
2283 if (iml->multi.imr_ifindex != ifindex)
2286 iml->multi.imr_address.s_addr)
2289 (void) ip_mc_leave_src(sk, iml, in_dev);
2291 *imlp = iml->next_rcu;
2297 atomic_sub(sizeof(*iml), &sk->sk_omem_alloc);
2298 kfree_rcu(iml, rcu);
2695 struct ip_mc_socklist *iml;
2702 while ((iml = rtnl_dereference(inet->mc_list)) != NULL) {
2705 inet->mc_list = iml->next_rcu;
2706 in_dev = inetdev_by_index(net, iml->multi.imr_ifindex);
2707 (void) ip_mc_leave_src(sk, iml, in_dev);
2709 ip_mc_dec_group(in_dev, iml->multi.imr_multiaddr.s_addr);
2711 atomic_sub(sizeof(*iml), &sk->sk_omem_alloc);
2712 kfree_rcu(iml, rcu);