Lines Matching full:im

736 static void mld_add_delrec(struct inet6_dev *idev, struct ifmcaddr6 *im)  in mld_add_delrec()  argument
750 pmc->idev = im->idev; in mld_add_delrec()
752 pmc->mca_addr = im->mca_addr; in mld_add_delrec()
754 pmc->mca_sfmode = im->mca_sfmode; in mld_add_delrec()
759 mc_dereference(im->mca_tomb, idev)); in mld_add_delrec()
761 mc_dereference(im->mca_sources, idev)); in mld_add_delrec()
762 RCU_INIT_POINTER(im->mca_tomb, NULL); in mld_add_delrec()
763 RCU_INIT_POINTER(im->mca_sources, NULL); in mld_add_delrec()
774 static void mld_del_delrec(struct inet6_dev *idev, struct ifmcaddr6 *im) in mld_del_delrec() argument
777 struct in6_addr *pmca = &im->mca_addr; in mld_del_delrec()
794 im->idev = pmc->idev; in mld_del_delrec()
795 if (im->mca_sfmode == MCAST_INCLUDE) { in mld_del_delrec()
796 tomb = rcu_replace_pointer(im->mca_tomb, in mld_del_delrec()
798 lockdep_is_held(&im->idev->mc_lock)); in mld_del_delrec()
801 sources = rcu_replace_pointer(im->mca_sources, in mld_del_delrec()
803 lockdep_is_held(&im->idev->mc_lock)); in mld_del_delrec()
805 for_each_psf_mclock(im, psf) in mld_del_delrec()
808 im->mca_crcount = idev->mc_qrv; in mld_del_delrec()
2917 struct ifmcaddr6 *im = NULL; in igmp6_mc_get_first() local
2928 im = rcu_dereference(idev->mc_list); in igmp6_mc_get_first()
2929 if (im) { in igmp6_mc_get_first()
2934 return im; in igmp6_mc_get_first()
2937 static struct ifmcaddr6 *igmp6_mc_get_next(struct seq_file *seq, struct ifmcaddr6 *im) in igmp6_mc_get_next() argument
2941 im = rcu_dereference(im->next); in igmp6_mc_get_next()
2942 while (!im) { in igmp6_mc_get_next()
2951 im = rcu_dereference(state->idev->mc_list); in igmp6_mc_get_next()
2953 return im; in igmp6_mc_get_next()
2958 struct ifmcaddr6 *im = igmp6_mc_get_first(seq); in igmp6_mc_get_idx() local
2959 if (im) in igmp6_mc_get_idx()
2960 while (pos && (im = igmp6_mc_get_next(seq, im)) != NULL) in igmp6_mc_get_idx()
2962 return pos ? NULL : im; in igmp6_mc_get_idx()
2974 struct ifmcaddr6 *im = igmp6_mc_get_next(seq, v); in igmp6_mc_seq_next() local
2977 return im; in igmp6_mc_seq_next()
2993 struct ifmcaddr6 *im = (struct ifmcaddr6 *)v; in igmp6_mc_seq_show() local
2999 &im->mca_addr, in igmp6_mc_seq_show()
3000 im->mca_users, im->mca_flags, in igmp6_mc_seq_show()
3001 (im->mca_flags & MAF_TIMER_RUNNING) ? in igmp6_mc_seq_show()
3002 jiffies_to_clock_t(im->mca_work.timer.expires - jiffies) : 0); in igmp6_mc_seq_show()
3017 struct ifmcaddr6 *im; member
3025 struct ifmcaddr6 *im = NULL; in igmp6_mcf_get_first() local
3030 state->im = NULL; in igmp6_mcf_get_first()
3037 im = rcu_dereference(idev->mc_list); in igmp6_mcf_get_first()
3038 if (likely(im)) { in igmp6_mcf_get_first()
3039 psf = rcu_dereference(im->mca_sources); in igmp6_mcf_get_first()
3041 state->im = im; in igmp6_mcf_get_first()
3056 state->im = rcu_dereference(state->im->next); in igmp6_mcf_get_next()
3057 while (!state->im) { in igmp6_mcf_get_next()
3066 state->im = rcu_dereference(state->idev->mc_list); in igmp6_mcf_get_next()
3068 psf = rcu_dereference(state->im->mca_sources); in igmp6_mcf_get_next()
3106 if (likely(state->im)) in igmp6_mcf_seq_stop()
3107 state->im = NULL; in igmp6_mcf_seq_stop()
3126 &state->im->mca_addr, in igmp6_mcf_seq_show()