Lines Matching refs:psl

2312 	struct ip_sf_socklist *psl;  in ip_mc_source()  local
2357 psl = rtnl_dereference(pmc->sflist); in ip_mc_source()
2359 if (!psl) in ip_mc_source()
2362 for (i = 0; i < psl->sl_count; i++) { in ip_mc_source()
2363 rv = memcmp(&psl->sl_addr[i], &mreqs->imr_sourceaddr, in ip_mc_source()
2372 if (psl->sl_count == 1 && omode == MCAST_INCLUDE) { in ip_mc_source()
2381 for (j = i+1; j < psl->sl_count; j++) in ip_mc_source()
2382 psl->sl_addr[j-1] = psl->sl_addr[j]; in ip_mc_source()
2383 psl->sl_count--; in ip_mc_source()
2389 if (psl && psl->sl_count >= READ_ONCE(net->ipv4.sysctl_igmp_max_msf)) { in ip_mc_source()
2393 if (!psl || psl->sl_count == psl->sl_max) { in ip_mc_source()
2397 if (psl) in ip_mc_source()
2398 count += psl->sl_max; in ip_mc_source()
2407 if (psl) { in ip_mc_source()
2408 for (i = 0; i < psl->sl_count; i++) in ip_mc_source()
2409 newpsl->sl_addr[i] = psl->sl_addr[i]; in ip_mc_source()
2411 atomic_sub(struct_size(psl, sl_addr, psl->sl_max), in ip_mc_source()
2415 if (psl) in ip_mc_source()
2416 kfree_rcu(psl, rcu); in ip_mc_source()
2417 psl = newpsl; in ip_mc_source()
2420 for (i = 0; i < psl->sl_count; i++) { in ip_mc_source()
2421 rv = memcmp(&psl->sl_addr[i], &mreqs->imr_sourceaddr, in ip_mc_source()
2428 for (j = psl->sl_count-1; j >= i; j--) in ip_mc_source()
2429 psl->sl_addr[j+1] = psl->sl_addr[j]; in ip_mc_source()
2430 psl->sl_addr[i] = mreqs->imr_sourceaddr; in ip_mc_source()
2431 psl->sl_count++; in ip_mc_source()
2450 struct ip_sf_socklist *newpsl, *psl; in ip_mc_msfilter() local
2511 psl = rtnl_dereference(pmc->sflist); in ip_mc_msfilter()
2512 if (psl) { in ip_mc_msfilter()
2514 psl->sl_count, psl->sl_addr, 0); in ip_mc_msfilter()
2516 atomic_sub(struct_size(psl, sl_addr, psl->sl_max), in ip_mc_msfilter()
2523 if (psl) in ip_mc_msfilter()
2524 kfree_rcu(psl, rcu); in ip_mc_msfilter()
2541 struct ip_sf_socklist *psl; in ip_mc_msfget() local
2568 psl = rtnl_dereference(pmc->sflist); in ip_mc_msfget()
2569 if (!psl) { in ip_mc_msfget()
2572 count = psl->sl_count; in ip_mc_msfget()
2575 len = flex_array_size(psl, sl_addr, copycount); in ip_mc_msfget()
2585 psl->sl_addr, len)) in ip_mc_msfget()
2600 struct ip_sf_socklist *psl; in ip_mc_gsfget() local
2619 psl = rtnl_dereference(pmc->sflist); in ip_mc_gsfget()
2620 count = psl ? psl->sl_count : 0; in ip_mc_gsfget()
2629 psin->sin_addr.s_addr = psl->sl_addr[i]; in ip_mc_gsfget()
2646 struct ip_sf_socklist *psl; in ip_mc_sf_allow() local
2664 psl = rcu_dereference(pmc->sflist); in ip_mc_sf_allow()
2666 if (!psl) in ip_mc_sf_allow()
2669 for (i = 0; i < psl->sl_count; i++) { in ip_mc_sf_allow()
2670 if (psl->sl_addr[i] == rmt_addr) in ip_mc_sf_allow()
2674 if (pmc->sfmode == MCAST_INCLUDE && i >= psl->sl_count) in ip_mc_sf_allow()
2676 if (pmc->sfmode == MCAST_EXCLUDE && i < psl->sl_count) in ip_mc_sf_allow()