Lines Matching refs:psf
728 struct ip6_sf_list *psf; in mld_add_delrec() local
733 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) in mld_add_delrec()
734 psf->sf_crcount = pmc->mca_crcount; in mld_add_delrec()
747 struct ip6_sf_list *psf, *psf_next; in mld_del_delrec() local
765 for (psf = pmc->mca_tomb; psf; psf = psf_next) { in mld_del_delrec()
766 psf_next = psf->sf_next; in mld_del_delrec()
767 kfree(psf); in mld_del_delrec()
793 struct ip6_sf_list *psf, *psf_next; in mld_clear_delrec() local
796 psf = pmc->mca_tomb; in mld_clear_delrec()
799 for (; psf; psf = psf_next) { in mld_clear_delrec()
800 psf_next = psf->sf_next; in mld_clear_delrec()
801 kfree(psf); in mld_clear_delrec()
972 struct ip6_sf_list *psf; in ipv6_chk_mcast_addr() local
975 for (psf = mc->mca_sources; psf; psf = psf->sf_next) { in ipv6_chk_mcast_addr()
976 if (ipv6_addr_equal(&psf->sf_addr, src_addr)) in ipv6_chk_mcast_addr()
979 if (psf) in ipv6_chk_mcast_addr()
980 rv = psf->sf_count[MCAST_INCLUDE] || in ipv6_chk_mcast_addr()
981 psf->sf_count[MCAST_EXCLUDE] != in ipv6_chk_mcast_addr()
1071 struct ip6_sf_list *psf; in mld_xmarksources() local
1075 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) { in mld_xmarksources()
1080 if (psf->sf_count[MCAST_INCLUDE] || in mld_xmarksources()
1082 psf->sf_count[MCAST_EXCLUDE]) in mld_xmarksources()
1084 if (ipv6_addr_equal(&srcs[i], &psf->sf_addr)) { in mld_xmarksources()
1099 struct ip6_sf_list *psf; in mld_marksources() local
1108 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) { in mld_marksources()
1112 if (ipv6_addr_equal(&srcs[i], &psf->sf_addr)) { in mld_marksources()
1113 psf->sf_gsresp = 1; in mld_marksources()
1468 static bool is_in(struct ifmcaddr6 *pmc, struct ip6_sf_list *psf, int type, in is_in() argument
1476 if (!((pmc->mca_flags & MAF_GSQUERY) && !psf->sf_gsresp)) { in is_in()
1482 if (psf->sf_count[MCAST_INCLUDE]) in is_in()
1485 psf->sf_count[MCAST_EXCLUDE]; in is_in()
1491 return psf->sf_count[MCAST_INCLUDE] != 0; in is_in()
1496 psf->sf_count[MCAST_INCLUDE]) in is_in()
1499 psf->sf_count[MCAST_EXCLUDE]; in is_in()
1501 if (gdeleted || !psf->sf_crcount) in is_in()
1506 return gdeleted || (psf->sf_crcount && sdeleted); in is_in()
1507 return psf->sf_crcount && !gdeleted && !sdeleted; in is_in()
1515 struct ip6_sf_list *psf; in mld_scount() local
1518 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) { in mld_scount()
1519 if (!is_in(pmc, psf, type, gdeleted, sdeleted)) in mld_scount()
1701 struct ip6_sf_list *psf, *psf_next, *psf_prev, **psf_list; in add_grec() local
1732 for (psf = *psf_list; psf; psf = psf_next) { in add_grec()
1735 psf_next = psf->sf_next; in add_grec()
1737 if (!is_in(pmc, psf, type, gdeleted, sdeleted)) { in add_grec()
1738 psf_prev = psf; in add_grec()
1744 psf->sf_gsresp = 0; in add_grec()
1765 *psrc = psf->sf_addr; in add_grec()
1768 type == MLD2_BLOCK_OLD_SOURCES) && psf->sf_crcount) { in add_grec()
1769 psf->sf_crcount--; in add_grec()
1770 if ((sdeleted || gdeleted) && psf->sf_crcount == 0) { in add_grec()
1772 psf_prev->sf_next = psf->sf_next; in add_grec()
1774 *psf_list = psf->sf_next; in add_grec()
1775 kfree(psf); in add_grec()
1779 psf_prev = psf; in add_grec()
1841 struct ip6_sf_list *psf_prev, *psf_next, *psf; in mld_clear_zeros() local
1844 for (psf = *ppsf; psf; psf = psf_next) { in mld_clear_zeros()
1845 psf_next = psf->sf_next; in mld_clear_zeros()
1846 if (psf->sf_crcount == 0) { in mld_clear_zeros()
1848 psf_prev->sf_next = psf->sf_next; in mld_clear_zeros()
1850 *ppsf = psf->sf_next; in mld_clear_zeros()
1851 kfree(psf); in mld_clear_zeros()
1853 psf_prev = psf; in mld_clear_zeros()
2079 struct ip6_sf_list *psf, *psf_prev; in ip6_mc_del1_src() local
2083 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) { in ip6_mc_del1_src()
2084 if (ipv6_addr_equal(&psf->sf_addr, psfsrc)) in ip6_mc_del1_src()
2086 psf_prev = psf; in ip6_mc_del1_src()
2088 if (!psf || psf->sf_count[sfmode] == 0) { in ip6_mc_del1_src()
2092 psf->sf_count[sfmode]--; in ip6_mc_del1_src()
2093 if (!psf->sf_count[MCAST_INCLUDE] && !psf->sf_count[MCAST_EXCLUDE]) { in ip6_mc_del1_src()
2098 psf_prev->sf_next = psf->sf_next; in ip6_mc_del1_src()
2100 pmc->mca_sources = psf->sf_next; in ip6_mc_del1_src()
2101 if (psf->sf_oldin && !(pmc->mca_flags & MAF_NOREPORT) && in ip6_mc_del1_src()
2103 psf->sf_crcount = idev->mc_qrv; in ip6_mc_del1_src()
2104 psf->sf_next = pmc->mca_tomb; in ip6_mc_del1_src()
2105 pmc->mca_tomb = psf; in ip6_mc_del1_src()
2108 kfree(psf); in ip6_mc_del1_src()
2154 struct ip6_sf_list *psf; in ip6_mc_del_src() local
2160 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) in ip6_mc_del_src()
2161 psf->sf_crcount = 0; in ip6_mc_del_src()
2176 struct ip6_sf_list *psf, *psf_prev; in ip6_mc_add1_src() local
2179 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) { in ip6_mc_add1_src()
2180 if (ipv6_addr_equal(&psf->sf_addr, psfsrc)) in ip6_mc_add1_src()
2182 psf_prev = psf; in ip6_mc_add1_src()
2184 if (!psf) { in ip6_mc_add1_src()
2185 psf = kzalloc(sizeof(*psf), GFP_ATOMIC); in ip6_mc_add1_src()
2186 if (!psf) in ip6_mc_add1_src()
2189 psf->sf_addr = *psfsrc; in ip6_mc_add1_src()
2191 psf_prev->sf_next = psf; in ip6_mc_add1_src()
2193 pmc->mca_sources = psf; in ip6_mc_add1_src()
2195 psf->sf_count[sfmode]++; in ip6_mc_add1_src()
2201 struct ip6_sf_list *psf; in sf_markstate() local
2204 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) in sf_markstate()
2206 psf->sf_oldin = mca_xcount == in sf_markstate()
2207 psf->sf_count[MCAST_EXCLUDE] && in sf_markstate()
2208 !psf->sf_count[MCAST_INCLUDE]; in sf_markstate()
2210 psf->sf_oldin = psf->sf_count[MCAST_INCLUDE] != 0; in sf_markstate()
2215 struct ip6_sf_list *psf, *dpsf; in sf_setstate() local
2221 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) { in sf_setstate()
2223 new_in = mca_xcount == psf->sf_count[MCAST_EXCLUDE] && in sf_setstate()
2224 !psf->sf_count[MCAST_INCLUDE]; in sf_setstate()
2226 new_in = psf->sf_count[MCAST_INCLUDE] != 0; in sf_setstate()
2228 if (!psf->sf_oldin) { in sf_setstate()
2234 &psf->sf_addr)) in sf_setstate()
2245 psf->sf_crcount = qrv; in sf_setstate()
2248 } else if (psf->sf_oldin) { in sf_setstate()
2249 psf->sf_crcount = 0; in sf_setstate()
2256 &psf->sf_addr)) in sf_setstate()
2262 *dpsf = *psf; in sf_setstate()
2317 struct ip6_sf_list *psf; in ip6_mc_add_src() local
2328 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) in ip6_mc_add_src()
2329 psf->sf_crcount = 0; in ip6_mc_add_src()
2340 struct ip6_sf_list *psf, *nextpsf; in ip6_mc_clear_src() local
2342 for (psf = pmc->mca_tomb; psf; psf = nextpsf) { in ip6_mc_clear_src()
2343 nextpsf = psf->sf_next; in ip6_mc_clear_src()
2344 kfree(psf); in ip6_mc_clear_src()
2347 for (psf = pmc->mca_sources; psf; psf = nextpsf) { in ip6_mc_clear_src()
2348 nextpsf = psf->sf_next; in ip6_mc_clear_src()
2349 kfree(psf); in ip6_mc_clear_src()
2714 struct ip6_sf_list *psf = NULL; in igmp6_mcf_get_first() local
2730 psf = im->mca_sources; in igmp6_mcf_get_first()
2731 if (likely(psf)) { in igmp6_mcf_get_first()
2740 return psf; in igmp6_mcf_get_first()
2743 static struct ip6_sf_list *igmp6_mcf_get_next(struct seq_file *seq, struct ip6_sf_list *psf) in igmp6_mcf_get_next() argument
2747 psf = psf->sf_next; in igmp6_mcf_get_next()
2748 while (!psf) { in igmp6_mcf_get_next()
2769 psf = state->im->mca_sources; in igmp6_mcf_get_next()
2772 return psf; in igmp6_mcf_get_next()
2777 struct ip6_sf_list *psf = igmp6_mcf_get_first(seq); in igmp6_mcf_get_idx() local
2778 if (psf) in igmp6_mcf_get_idx()
2779 while (pos && (psf = igmp6_mcf_get_next(seq, psf)) != NULL) in igmp6_mcf_get_idx()
2781 return pos ? NULL : psf; in igmp6_mcf_get_idx()
2793 struct ip6_sf_list *psf; in igmp6_mcf_seq_next() local
2795 psf = igmp6_mcf_get_first(seq); in igmp6_mcf_seq_next()
2797 psf = igmp6_mcf_get_next(seq, v); in igmp6_mcf_seq_next()
2799 return psf; in igmp6_mcf_seq_next()
2820 struct ip6_sf_list *psf = (struct ip6_sf_list *)v; in igmp6_mcf_seq_show() local
2830 &psf->sf_addr, in igmp6_mcf_seq_show()
2831 psf->sf_count[MCAST_INCLUDE], in igmp6_mcf_seq_show()
2832 psf->sf_count[MCAST_EXCLUDE]); in igmp6_mcf_seq_show()