Lines Matching refs:im

727 static void mld_add_delrec(struct inet6_dev *idev, struct ifmcaddr6 *im)  in mld_add_delrec()  argument
741 spin_lock_bh(&im->mca_lock); in mld_add_delrec()
743 pmc->idev = im->idev; in mld_add_delrec()
745 pmc->mca_addr = im->mca_addr; in mld_add_delrec()
747 pmc->mca_sfmode = im->mca_sfmode; in mld_add_delrec()
751 pmc->mca_tomb = im->mca_tomb; in mld_add_delrec()
752 pmc->mca_sources = im->mca_sources; in mld_add_delrec()
753 im->mca_tomb = im->mca_sources = NULL; in mld_add_delrec()
757 spin_unlock_bh(&im->mca_lock); in mld_add_delrec()
765 static void mld_del_delrec(struct inet6_dev *idev, struct ifmcaddr6 *im) in mld_del_delrec() argument
769 struct in6_addr *pmca = &im->mca_addr; in mld_del_delrec()
786 spin_lock_bh(&im->mca_lock); in mld_del_delrec()
788 im->idev = pmc->idev; in mld_del_delrec()
789 if (im->mca_sfmode == MCAST_INCLUDE) { in mld_del_delrec()
790 swap(im->mca_tomb, pmc->mca_tomb); in mld_del_delrec()
791 swap(im->mca_sources, pmc->mca_sources); in mld_del_delrec()
792 for (psf = im->mca_sources; psf; psf = psf->sf_next) in mld_del_delrec()
795 im->mca_crcount = idev->mc_qrv; in mld_del_delrec()
801 spin_unlock_bh(&im->mca_lock); in mld_del_delrec()
2676 struct ifmcaddr6 *im = NULL; in igmp6_mc_get_first() local
2687 im = idev->mc_list; in igmp6_mc_get_first()
2688 if (im) { in igmp6_mc_get_first()
2694 return im; in igmp6_mc_get_first()
2697 static struct ifmcaddr6 *igmp6_mc_get_next(struct seq_file *seq, struct ifmcaddr6 *im) in igmp6_mc_get_next() argument
2701 im = im->next; in igmp6_mc_get_next()
2702 while (!im) { in igmp6_mc_get_next()
2715 im = state->idev->mc_list; in igmp6_mc_get_next()
2717 return im; in igmp6_mc_get_next()
2722 struct ifmcaddr6 *im = igmp6_mc_get_first(seq); in igmp6_mc_get_idx() local
2723 if (im) in igmp6_mc_get_idx()
2724 while (pos && (im = igmp6_mc_get_next(seq, im)) != NULL) in igmp6_mc_get_idx()
2726 return pos ? NULL : im; in igmp6_mc_get_idx()
2738 struct ifmcaddr6 *im = igmp6_mc_get_next(seq, v); in igmp6_mc_seq_next() local
2741 return im; in igmp6_mc_seq_next()
2759 struct ifmcaddr6 *im = (struct ifmcaddr6 *)v; in igmp6_mc_seq_show() local
2765 &im->mca_addr, in igmp6_mc_seq_show()
2766 im->mca_users, im->mca_flags, in igmp6_mc_seq_show()
2767 (im->mca_flags&MAF_TIMER_RUNNING) ? in igmp6_mc_seq_show()
2768 jiffies_to_clock_t(im->mca_timer.expires-jiffies) : 0); in igmp6_mc_seq_show()
2783 struct ifmcaddr6 *im; member
2791 struct ifmcaddr6 *im = NULL; in igmp6_mcf_get_first() local
2796 state->im = NULL; in igmp6_mcf_get_first()
2803 im = idev->mc_list; in igmp6_mcf_get_first()
2804 if (likely(im)) { in igmp6_mcf_get_first()
2805 spin_lock_bh(&im->mca_lock); in igmp6_mcf_get_first()
2806 psf = im->mca_sources; in igmp6_mcf_get_first()
2808 state->im = im; in igmp6_mcf_get_first()
2812 spin_unlock_bh(&im->mca_lock); in igmp6_mcf_get_first()
2825 spin_unlock_bh(&state->im->mca_lock); in igmp6_mcf_get_next()
2826 state->im = state->im->next; in igmp6_mcf_get_next()
2827 while (!state->im) { in igmp6_mcf_get_next()
2840 state->im = state->idev->mc_list; in igmp6_mcf_get_next()
2842 if (!state->im) in igmp6_mcf_get_next()
2844 spin_lock_bh(&state->im->mca_lock); in igmp6_mcf_get_next()
2845 psf = state->im->mca_sources; in igmp6_mcf_get_next()
2882 if (likely(state->im)) { in igmp6_mcf_seq_stop()
2883 spin_unlock_bh(&state->im->mca_lock); in igmp6_mcf_seq_stop()
2884 state->im = NULL; in igmp6_mcf_seq_stop()
2905 &state->im->mca_addr, in igmp6_mcf_seq_show()