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);
2686 struct ip_mc_socklist *iml;
2693 while ((iml = rtnl_dereference(inet->mc_list)) != NULL) {
2696 inet->mc_list = iml->next_rcu;
2697 in_dev = inetdev_by_index(net, iml->multi.imr_ifindex);
2698 (void) ip_mc_leave_src(sk, iml, in_dev);
2700 ip_mc_dec_group(in_dev, iml->multi.imr_multiaddr.s_addr);
2702 atomic_sub(sizeof(*iml), &sk->sk_omem_alloc);
2703 kfree_rcu(iml, rcu);