Lines Matching refs:psl
2171 struct ip_sf_socklist *psl; in ip_mc_source() local
2216 psl = rtnl_dereference(pmc->sflist); in ip_mc_source()
2218 if (!psl) in ip_mc_source()
2221 for (i = 0; i < psl->sl_count; i++) { in ip_mc_source()
2222 rv = memcmp(&psl->sl_addr[i], &mreqs->imr_sourceaddr, in ip_mc_source()
2231 if (psl->sl_count == 1 && omode == MCAST_INCLUDE) { in ip_mc_source()
2240 for (j = i+1; j < psl->sl_count; j++) in ip_mc_source()
2241 psl->sl_addr[j-1] = psl->sl_addr[j]; in ip_mc_source()
2242 psl->sl_count--; in ip_mc_source()
2248 if (psl && psl->sl_count >= sysctl_igmp_max_msf) { in ip_mc_source()
2252 if (!psl || psl->sl_count == psl->sl_max) { in ip_mc_source()
2256 if (psl) in ip_mc_source()
2257 count += psl->sl_max; in ip_mc_source()
2265 if (psl) { in ip_mc_source()
2266 for (i = 0; i < psl->sl_count; i++) in ip_mc_source()
2267 newpsl->sl_addr[i] = psl->sl_addr[i]; in ip_mc_source()
2269 atomic_sub(IP_SFLSIZE(psl->sl_max), &sk->sk_omem_alloc); in ip_mc_source()
2270 kfree_rcu(psl, rcu); in ip_mc_source()
2273 psl = newpsl; in ip_mc_source()
2276 for (i = 0; i < psl->sl_count; i++) { in ip_mc_source()
2277 rv = memcmp(&psl->sl_addr[i], &mreqs->imr_sourceaddr, in ip_mc_source()
2284 for (j = psl->sl_count-1; j >= i; j--) in ip_mc_source()
2285 psl->sl_addr[j+1] = psl->sl_addr[j]; in ip_mc_source()
2286 psl->sl_addr[i] = mreqs->imr_sourceaddr; in ip_mc_source()
2287 psl->sl_count++; in ip_mc_source()
2306 struct ip_sf_socklist *newpsl, *psl; in ip_mc_msfilter() local
2364 psl = rtnl_dereference(pmc->sflist); in ip_mc_msfilter()
2365 if (psl) { in ip_mc_msfilter()
2367 psl->sl_count, psl->sl_addr, 0); in ip_mc_msfilter()
2369 atomic_sub(IP_SFLSIZE(psl->sl_max), &sk->sk_omem_alloc); in ip_mc_msfilter()
2370 kfree_rcu(psl, rcu); in ip_mc_msfilter()
2392 struct ip_sf_socklist *psl; in ip_mc_msfget() local
2419 psl = rtnl_dereference(pmc->sflist); in ip_mc_msfget()
2420 if (!psl) { in ip_mc_msfget()
2424 count = psl->sl_count; in ip_mc_msfget()
2427 len = copycount * sizeof(psl->sl_addr[0]); in ip_mc_msfget()
2434 copy_to_user(&optval->imsf_slist[0], psl->sl_addr, len)) in ip_mc_msfget()
2449 struct ip_sf_socklist *psl; in ip_mc_gsfget() local
2470 psl = rtnl_dereference(pmc->sflist); in ip_mc_gsfget()
2471 count = psl ? psl->sl_count : 0; in ip_mc_gsfget()
2484 psin->sin_addr.s_addr = psl->sl_addr[i]; in ip_mc_gsfget()
2500 struct ip_sf_socklist *psl; in ip_mc_sf_allow() local
2517 psl = rcu_dereference(pmc->sflist); in ip_mc_sf_allow()
2519 if (!psl) in ip_mc_sf_allow()
2522 for (i = 0; i < psl->sl_count; i++) { in ip_mc_sf_allow()
2523 if (psl->sl_addr[i] == rmt_addr) in ip_mc_sf_allow()
2527 if (pmc->sfmode == MCAST_INCLUDE && i >= psl->sl_count) in ip_mc_sf_allow()
2529 if (pmc->sfmode == MCAST_EXCLUDE && i < psl->sl_count) in ip_mc_sf_allow()