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