Lines Matching refs:psl

368 	struct ip6_sf_socklist *psl;  in ip6_mc_source()  local
410 psl = sock_dereference(pmc->sflist, sk); in ip6_mc_source()
412 if (!psl) in ip6_mc_source()
415 for (i = 0; i < psl->sl_count; i++) { in ip6_mc_source()
416 rv = !ipv6_addr_equal(&psl->sl_addr[i], source); in ip6_mc_source()
424 if (psl->sl_count == 1 && omode == MCAST_INCLUDE) { in ip6_mc_source()
432 for (j = i+1; j < psl->sl_count; j++) in ip6_mc_source()
433 psl->sl_addr[j-1] = psl->sl_addr[j]; in ip6_mc_source()
434 psl->sl_count--; in ip6_mc_source()
440 if (psl && psl->sl_count >= sysctl_mld_max_msf) { in ip6_mc_source()
444 if (!psl || psl->sl_count == psl->sl_max) { in ip6_mc_source()
448 if (psl) in ip6_mc_source()
449 count += psl->sl_max; in ip6_mc_source()
458 if (psl) { in ip6_mc_source()
459 for (i = 0; i < psl->sl_count; i++) in ip6_mc_source()
460 newpsl->sl_addr[i] = psl->sl_addr[i]; in ip6_mc_source()
461 atomic_sub(struct_size(psl, sl_addr, psl->sl_max), in ip6_mc_source()
465 kfree_rcu(psl, rcu); in ip6_mc_source()
466 psl = newpsl; in ip6_mc_source()
469 for (i = 0; i < psl->sl_count; i++) { in ip6_mc_source()
470 rv = !ipv6_addr_equal(&psl->sl_addr[i], source); in ip6_mc_source()
474 for (j = psl->sl_count-1; j >= i; j--) in ip6_mc_source()
475 psl->sl_addr[j+1] = psl->sl_addr[j]; in ip6_mc_source()
476 psl->sl_addr[i] = *source; in ip6_mc_source()
477 psl->sl_count++; in ip6_mc_source()
495 struct ip6_sf_socklist *newpsl, *psl; in ip6_mc_msfilter() local
562 psl = sock_dereference(pmc->sflist, sk); in ip6_mc_msfilter()
563 if (psl) { in ip6_mc_msfilter()
565 psl->sl_count, psl->sl_addr, 0); in ip6_mc_msfilter()
566 atomic_sub(struct_size(psl, sl_addr, psl->sl_max), in ip6_mc_msfilter()
573 kfree_rcu(psl, rcu); in ip6_mc_msfilter()
588 struct ip6_sf_socklist *psl; in ip6_mc_msfget() local
611 psl = sock_dereference(pmc->sflist, sk); in ip6_mc_msfget()
612 count = psl ? psl->sl_count : 0; in ip6_mc_msfget()
623 psin6->sin6_addr = psl->sl_addr[i]; in ip6_mc_msfget()
636 const struct ip6_sf_socklist *psl; in inet6_mc_check() local
648 psl = rcu_dereference(mc->sflist); in inet6_mc_check()
649 if (!psl) { in inet6_mc_check()
654 for (i = 0; i < psl->sl_count; i++) { in inet6_mc_check()
655 if (ipv6_addr_equal(&psl->sl_addr[i], src_addr)) in inet6_mc_check()
658 if (mc->sfmode == MCAST_INCLUDE && i >= psl->sl_count) in inet6_mc_check()
660 if (mc->sfmode == MCAST_EXCLUDE && i < psl->sl_count) in inet6_mc_check()
2590 struct ip6_sf_socklist *psl; in ip6_mc_leave_src() local
2593 psl = sock_dereference(iml->sflist, sk); in ip6_mc_leave_src()
2598 if (!psl) { in ip6_mc_leave_src()
2603 psl->sl_count, psl->sl_addr, 0); in ip6_mc_leave_src()
2605 atomic_sub(struct_size(psl, sl_addr, psl->sl_max), in ip6_mc_leave_src()
2607 kfree_rcu(psl, rcu); in ip6_mc_leave_src()