Lines Matching defs:psf
746 struct ip6_sf_list *psf;
751 for (psf = pmc->mca_sources; psf; psf = psf->sf_next)
752 psf->sf_crcount = pmc->mca_crcount;
765 struct ip6_sf_list *psf;
789 for (psf = im->mca_sources; psf; psf = psf->sf_next)
790 psf->sf_crcount = idev->mc_qrv;
820 struct ip6_sf_list *psf, *psf_next;
823 psf = pmc->mca_tomb;
826 for (; psf; psf = psf_next) {
827 psf_next = psf->sf_next;
828 kfree(psf);
1007 struct ip6_sf_list *psf;
1010 for (psf = mc->mca_sources; psf; psf = psf->sf_next) {
1011 if (ipv6_addr_equal(&psf->sf_addr, src_addr))
1014 if (psf)
1015 rv = psf->sf_count[MCAST_INCLUDE] ||
1016 psf->sf_count[MCAST_EXCLUDE] !=
1106 struct ip6_sf_list *psf;
1110 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) {
1115 if (psf->sf_count[MCAST_INCLUDE] ||
1117 psf->sf_count[MCAST_EXCLUDE])
1119 if (ipv6_addr_equal(&srcs[i], &psf->sf_addr)) {
1134 struct ip6_sf_list *psf;
1143 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) {
1147 if (ipv6_addr_equal(&srcs[i], &psf->sf_addr)) {
1148 psf->sf_gsresp = 1;
1503 static bool is_in(struct ifmcaddr6 *pmc, struct ip6_sf_list *psf, int type,
1511 if (!((pmc->mca_flags & MAF_GSQUERY) && !psf->sf_gsresp)) {
1517 if (psf->sf_count[MCAST_INCLUDE])
1520 psf->sf_count[MCAST_EXCLUDE];
1526 return psf->sf_count[MCAST_INCLUDE] != 0;
1531 psf->sf_count[MCAST_INCLUDE])
1534 psf->sf_count[MCAST_EXCLUDE];
1536 if (gdeleted || !psf->sf_crcount)
1541 return gdeleted || (psf->sf_crcount && sdeleted);
1542 return psf->sf_crcount && !gdeleted && !sdeleted;
1550 struct ip6_sf_list *psf;
1553 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) {
1554 if (!is_in(pmc, psf, type, gdeleted, sdeleted))
1731 struct ip6_sf_list *psf, *psf_next, *psf_prev, **psf_list;
1767 for (psf = *psf_list; psf; psf = psf_next) {
1770 psf_next = psf->sf_next;
1772 if (!is_in(pmc, psf, type, gdeleted, sdeleted) && !crsend) {
1773 psf_prev = psf;
1783 type == MLD2_BLOCK_OLD_SOURCES) && psf->sf_crcount)
1788 psf->sf_gsresp = 0;
1809 *psrc = psf->sf_addr;
1812 type == MLD2_BLOCK_OLD_SOURCES) && psf->sf_crcount) {
1814 psf->sf_crcount--;
1815 if ((sdeleted || gdeleted) && psf->sf_crcount == 0) {
1817 psf_prev->sf_next = psf->sf_next;
1819 *psf_list = psf->sf_next;
1820 kfree(psf);
1824 psf_prev = psf;
1886 struct ip6_sf_list *psf_prev, *psf_next, *psf;
1889 for (psf = *ppsf; psf; psf = psf_next) {
1890 psf_next = psf->sf_next;
1891 if (psf->sf_crcount == 0) {
1893 psf_prev->sf_next = psf->sf_next;
1895 *ppsf = psf->sf_next;
1896 kfree(psf);
1898 psf_prev = psf;
2125 struct ip6_sf_list *psf, *psf_prev;
2129 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) {
2130 if (ipv6_addr_equal(&psf->sf_addr, psfsrc))
2132 psf_prev = psf;
2134 if (!psf || psf->sf_count[sfmode] == 0) {
2138 psf->sf_count[sfmode]--;
2139 if (!psf->sf_count[MCAST_INCLUDE] && !psf->sf_count[MCAST_EXCLUDE]) {
2144 psf_prev->sf_next = psf->sf_next;
2146 pmc->mca_sources = psf->sf_next;
2147 if (psf->sf_oldin && !(pmc->mca_flags & MAF_NOREPORT) &&
2149 psf->sf_crcount = idev->mc_qrv;
2150 psf->sf_next = pmc->mca_tomb;
2151 pmc->mca_tomb = psf;
2154 kfree(psf);
2200 struct ip6_sf_list *psf;
2206 for (psf = pmc->mca_sources; psf; psf = psf->sf_next)
2207 psf->sf_crcount = 0;
2222 struct ip6_sf_list *psf, *psf_prev;
2225 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) {
2226 if (ipv6_addr_equal(&psf->sf_addr, psfsrc))
2228 psf_prev = psf;
2230 if (!psf) {
2231 psf = kzalloc(sizeof(*psf), GFP_ATOMIC);
2232 if (!psf)
2235 psf->sf_addr = *psfsrc;
2237 psf_prev->sf_next = psf;
2239 pmc->mca_sources = psf;
2241 psf->sf_count[sfmode]++;
2247 struct ip6_sf_list *psf;
2250 for (psf = pmc->mca_sources; psf; psf = psf->sf_next)
2252 psf->sf_oldin = mca_xcount ==
2253 psf->sf_count[MCAST_EXCLUDE] &&
2254 !psf->sf_count[MCAST_INCLUDE];
2256 psf->sf_oldin = psf->sf_count[MCAST_INCLUDE] != 0;
2261 struct ip6_sf_list *psf, *dpsf;
2267 for (psf = pmc->mca_sources; psf; psf = psf->sf_next) {
2269 new_in = mca_xcount == psf->sf_count[MCAST_EXCLUDE] &&
2270 !psf->sf_count[MCAST_INCLUDE];
2272 new_in = psf->sf_count[MCAST_INCLUDE] != 0;
2274 if (!psf->sf_oldin) {
2280 &psf->sf_addr))
2291 psf->sf_crcount = qrv;
2294 } else if (psf->sf_oldin) {
2295 psf->sf_crcount = 0;
2302 &psf->sf_addr))
2308 *dpsf = *psf;
2363 struct ip6_sf_list *psf;
2374 for (psf = pmc->mca_sources; psf; psf = psf->sf_next)
2375 psf->sf_crcount = 0;
2386 struct ip6_sf_list *psf, *nextpsf;
2388 for (psf = pmc->mca_tomb; psf; psf = nextpsf) {
2389 nextpsf = psf->sf_next;
2390 kfree(psf);
2393 for (psf = pmc->mca_sources; psf; psf = nextpsf) {
2394 nextpsf = psf->sf_next;
2395 kfree(psf);
2785 struct ip6_sf_list *psf = NULL;
2801 psf = im->mca_sources;
2802 if (likely(psf)) {
2811 return psf;
2814 static struct ip6_sf_list *igmp6_mcf_get_next(struct seq_file *seq, struct ip6_sf_list *psf)
2818 psf = psf->sf_next;
2819 while (!psf) {
2840 psf = state->im->mca_sources;
2843 return psf;
2848 struct ip6_sf_list *psf = igmp6_mcf_get_first(seq);
2849 if (psf)
2850 while (pos && (psf = igmp6_mcf_get_next(seq, psf)) != NULL)
2852 return pos ? NULL : psf;
2864 struct ip6_sf_list *psf;
2866 psf = igmp6_mcf_get_first(seq);
2868 psf = igmp6_mcf_get_next(seq, v);
2870 return psf;
2891 struct ip6_sf_list *psf = (struct ip6_sf_list *)v;
2901 &psf->sf_addr,
2902 psf->sf_count[MCAST_INCLUDE],
2903 psf->sf_count[MCAST_EXCLUDE]);