Lines Matching refs:psf

753 		struct ip6_sf_list *psf;  in mld_add_delrec()  local
758 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) in mld_add_delrec()
759 psf->sf_crcount = pmc->mca_crcount; in mld_add_delrec()
772 struct ip6_sf_list *psf; in mld_del_delrec() local
796 for (psf = im->mca_sources; psf; psf = psf->sf_next) in mld_del_delrec()
797 psf->sf_crcount = idev->mc_qrv; in mld_del_delrec()
826 struct ip6_sf_list *psf, *psf_next; in mld_clear_delrec() local
829 psf = pmc->mca_tomb; in mld_clear_delrec()
832 for (; psf; psf = psf_next) { in mld_clear_delrec()
833 psf_next = psf->sf_next; in mld_clear_delrec()
834 kfree(psf); in mld_clear_delrec()
1011 struct ip6_sf_list *psf; in ipv6_chk_mcast_addr() local
1014 for (psf = mc->mca_sources; psf; psf = psf->sf_next) { in ipv6_chk_mcast_addr()
1015 if (ipv6_addr_equal(&psf->sf_addr, src_addr)) in ipv6_chk_mcast_addr()
1018 if (psf) in ipv6_chk_mcast_addr()
1019 rv = psf->sf_count[MCAST_INCLUDE] || in ipv6_chk_mcast_addr()
1020 psf->sf_count[MCAST_EXCLUDE] != in ipv6_chk_mcast_addr()
1110 struct ip6_sf_list *psf; in mld_xmarksources() local
1114 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) { in mld_xmarksources()
1119 if (psf->sf_count[MCAST_INCLUDE] || in mld_xmarksources()
1121 psf->sf_count[MCAST_EXCLUDE]) in mld_xmarksources()
1123 if (ipv6_addr_equal(&srcs[i], &psf->sf_addr)) { in mld_xmarksources()
1138 struct ip6_sf_list *psf; in mld_marksources() local
1147 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) { in mld_marksources()
1151 if (ipv6_addr_equal(&srcs[i], &psf->sf_addr)) { in mld_marksources()
1152 psf->sf_gsresp = 1; in mld_marksources()
1507 static bool is_in(struct ifmcaddr6 *pmc, struct ip6_sf_list *psf, int type, in is_in() argument
1515 if (!((pmc->mca_flags & MAF_GSQUERY) && !psf->sf_gsresp)) { in is_in()
1521 if (psf->sf_count[MCAST_INCLUDE]) in is_in()
1524 psf->sf_count[MCAST_EXCLUDE]; in is_in()
1530 return psf->sf_count[MCAST_INCLUDE] != 0; in is_in()
1535 psf->sf_count[MCAST_INCLUDE]) in is_in()
1538 psf->sf_count[MCAST_EXCLUDE]; in is_in()
1540 if (gdeleted || !psf->sf_crcount) in is_in()
1545 return gdeleted || (psf->sf_crcount && sdeleted); in is_in()
1546 return psf->sf_crcount && !gdeleted && !sdeleted; in is_in()
1554 struct ip6_sf_list *psf; in mld_scount() local
1557 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) { in mld_scount()
1558 if (!is_in(pmc, psf, type, gdeleted, sdeleted)) in mld_scount()
1738 struct ip6_sf_list *psf, *psf_next, *psf_prev, **psf_list; in add_grec() local
1774 for (psf = *psf_list; psf; psf = psf_next) { in add_grec()
1777 psf_next = psf->sf_next; in add_grec()
1779 if (!is_in(pmc, psf, type, gdeleted, sdeleted) && !crsend) { in add_grec()
1780 psf_prev = psf; in add_grec()
1790 type == MLD2_BLOCK_OLD_SOURCES) && psf->sf_crcount) in add_grec()
1795 psf->sf_gsresp = 0; in add_grec()
1816 *psrc = psf->sf_addr; in add_grec()
1819 type == MLD2_BLOCK_OLD_SOURCES) && psf->sf_crcount) { in add_grec()
1821 psf->sf_crcount--; in add_grec()
1822 if ((sdeleted || gdeleted) && psf->sf_crcount == 0) { in add_grec()
1824 psf_prev->sf_next = psf->sf_next; in add_grec()
1826 *psf_list = psf->sf_next; in add_grec()
1827 kfree(psf); in add_grec()
1831 psf_prev = psf; in add_grec()
1893 struct ip6_sf_list *psf_prev, *psf_next, *psf; in mld_clear_zeros() local
1896 for (psf = *ppsf; psf; psf = psf_next) { in mld_clear_zeros()
1897 psf_next = psf->sf_next; in mld_clear_zeros()
1898 if (psf->sf_crcount == 0) { in mld_clear_zeros()
1900 psf_prev->sf_next = psf->sf_next; in mld_clear_zeros()
1902 *ppsf = psf->sf_next; in mld_clear_zeros()
1903 kfree(psf); in mld_clear_zeros()
1905 psf_prev = psf; in mld_clear_zeros()
2132 struct ip6_sf_list *psf, *psf_prev; in ip6_mc_del1_src() local
2136 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) { in ip6_mc_del1_src()
2137 if (ipv6_addr_equal(&psf->sf_addr, psfsrc)) in ip6_mc_del1_src()
2139 psf_prev = psf; in ip6_mc_del1_src()
2141 if (!psf || psf->sf_count[sfmode] == 0) { in ip6_mc_del1_src()
2145 psf->sf_count[sfmode]--; in ip6_mc_del1_src()
2146 if (!psf->sf_count[MCAST_INCLUDE] && !psf->sf_count[MCAST_EXCLUDE]) { in ip6_mc_del1_src()
2151 psf_prev->sf_next = psf->sf_next; in ip6_mc_del1_src()
2153 pmc->mca_sources = psf->sf_next; in ip6_mc_del1_src()
2154 if (psf->sf_oldin && !(pmc->mca_flags & MAF_NOREPORT) && in ip6_mc_del1_src()
2156 psf->sf_crcount = idev->mc_qrv; in ip6_mc_del1_src()
2157 psf->sf_next = pmc->mca_tomb; in ip6_mc_del1_src()
2158 pmc->mca_tomb = psf; in ip6_mc_del1_src()
2161 kfree(psf); in ip6_mc_del1_src()
2207 struct ip6_sf_list *psf; in ip6_mc_del_src() local
2213 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) in ip6_mc_del_src()
2214 psf->sf_crcount = 0; in ip6_mc_del_src()
2229 struct ip6_sf_list *psf, *psf_prev; in ip6_mc_add1_src() local
2232 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) { in ip6_mc_add1_src()
2233 if (ipv6_addr_equal(&psf->sf_addr, psfsrc)) in ip6_mc_add1_src()
2235 psf_prev = psf; in ip6_mc_add1_src()
2237 if (!psf) { in ip6_mc_add1_src()
2238 psf = kzalloc(sizeof(*psf), GFP_ATOMIC); in ip6_mc_add1_src()
2239 if (!psf) in ip6_mc_add1_src()
2242 psf->sf_addr = *psfsrc; in ip6_mc_add1_src()
2244 psf_prev->sf_next = psf; in ip6_mc_add1_src()
2246 pmc->mca_sources = psf; in ip6_mc_add1_src()
2248 psf->sf_count[sfmode]++; in ip6_mc_add1_src()
2254 struct ip6_sf_list *psf; in sf_markstate() local
2257 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) in sf_markstate()
2259 psf->sf_oldin = mca_xcount == in sf_markstate()
2260 psf->sf_count[MCAST_EXCLUDE] && in sf_markstate()
2261 !psf->sf_count[MCAST_INCLUDE]; in sf_markstate()
2263 psf->sf_oldin = psf->sf_count[MCAST_INCLUDE] != 0; in sf_markstate()
2268 struct ip6_sf_list *psf, *dpsf; in sf_setstate() local
2274 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) { in sf_setstate()
2276 new_in = mca_xcount == psf->sf_count[MCAST_EXCLUDE] && in sf_setstate()
2277 !psf->sf_count[MCAST_INCLUDE]; in sf_setstate()
2279 new_in = psf->sf_count[MCAST_INCLUDE] != 0; in sf_setstate()
2281 if (!psf->sf_oldin) { in sf_setstate()
2287 &psf->sf_addr)) in sf_setstate()
2298 psf->sf_crcount = qrv; in sf_setstate()
2301 } else if (psf->sf_oldin) { in sf_setstate()
2302 psf->sf_crcount = 0; in sf_setstate()
2309 &psf->sf_addr)) in sf_setstate()
2315 *dpsf = *psf; in sf_setstate()
2370 struct ip6_sf_list *psf; in ip6_mc_add_src() local
2381 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) in ip6_mc_add_src()
2382 psf->sf_crcount = 0; in ip6_mc_add_src()
2393 struct ip6_sf_list *psf, *nextpsf; in ip6_mc_clear_src() local
2395 for (psf = pmc->mca_tomb; psf; psf = nextpsf) { in ip6_mc_clear_src()
2396 nextpsf = psf->sf_next; in ip6_mc_clear_src()
2397 kfree(psf); in ip6_mc_clear_src()
2400 for (psf = pmc->mca_sources; psf; psf = nextpsf) { in ip6_mc_clear_src()
2401 nextpsf = psf->sf_next; in ip6_mc_clear_src()
2402 kfree(psf); in ip6_mc_clear_src()
2791 struct ip6_sf_list *psf = NULL; in igmp6_mcf_get_first() local
2807 psf = im->mca_sources; in igmp6_mcf_get_first()
2808 if (likely(psf)) { in igmp6_mcf_get_first()
2817 return psf; in igmp6_mcf_get_first()
2820 static struct ip6_sf_list *igmp6_mcf_get_next(struct seq_file *seq, struct ip6_sf_list *psf) in igmp6_mcf_get_next() argument
2824 psf = psf->sf_next; in igmp6_mcf_get_next()
2825 while (!psf) { in igmp6_mcf_get_next()
2846 psf = state->im->mca_sources; in igmp6_mcf_get_next()
2849 return psf; in igmp6_mcf_get_next()
2854 struct ip6_sf_list *psf = igmp6_mcf_get_first(seq); in igmp6_mcf_get_idx() local
2855 if (psf) in igmp6_mcf_get_idx()
2856 while (pos && (psf = igmp6_mcf_get_next(seq, psf)) != NULL) in igmp6_mcf_get_idx()
2858 return pos ? NULL : psf; in igmp6_mcf_get_idx()
2870 struct ip6_sf_list *psf; in igmp6_mcf_seq_next() local
2872 psf = igmp6_mcf_get_first(seq); in igmp6_mcf_seq_next()
2874 psf = igmp6_mcf_get_next(seq, v); in igmp6_mcf_seq_next()
2876 return psf; in igmp6_mcf_seq_next()
2897 struct ip6_sf_list *psf = (struct ip6_sf_list *)v; in igmp6_mcf_seq_show() local
2907 &psf->sf_addr, in igmp6_mcf_seq_show()
2908 psf->sf_count[MCAST_INCLUDE], in igmp6_mcf_seq_show()
2909 psf->sf_count[MCAST_EXCLUDE]); in igmp6_mcf_seq_show()