Lines Matching full:im

732 static void mld_add_delrec(struct inet6_dev *idev, struct ifmcaddr6 *im)  in mld_add_delrec()  argument
746 pmc->idev = im->idev; in mld_add_delrec()
748 pmc->mca_addr = im->mca_addr; in mld_add_delrec()
750 pmc->mca_sfmode = im->mca_sfmode; in mld_add_delrec()
755 mc_dereference(im->mca_tomb, idev)); in mld_add_delrec()
757 mc_dereference(im->mca_sources, idev)); in mld_add_delrec()
758 RCU_INIT_POINTER(im->mca_tomb, NULL); in mld_add_delrec()
759 RCU_INIT_POINTER(im->mca_sources, NULL); in mld_add_delrec()
770 static void mld_del_delrec(struct inet6_dev *idev, struct ifmcaddr6 *im) in mld_del_delrec() argument
773 struct in6_addr *pmca = &im->mca_addr; in mld_del_delrec()
790 im->idev = pmc->idev; in mld_del_delrec()
791 if (im->mca_sfmode == MCAST_INCLUDE) { in mld_del_delrec()
792 tomb = rcu_replace_pointer(im->mca_tomb, in mld_del_delrec()
794 lockdep_is_held(&im->idev->mc_lock)); in mld_del_delrec()
797 sources = rcu_replace_pointer(im->mca_sources, in mld_del_delrec()
799 lockdep_is_held(&im->idev->mc_lock)); in mld_del_delrec()
801 for_each_psf_mclock(im, psf) in mld_del_delrec()
804 im->mca_crcount = idev->mc_qrv; in mld_del_delrec()
2871 struct ifmcaddr6 *im = NULL; in igmp6_mc_get_first() local
2882 im = rcu_dereference(idev->mc_list); in igmp6_mc_get_first()
2883 if (im) { in igmp6_mc_get_first()
2888 return im; in igmp6_mc_get_first()
2891 static struct ifmcaddr6 *igmp6_mc_get_next(struct seq_file *seq, struct ifmcaddr6 *im) in igmp6_mc_get_next() argument
2895 im = rcu_dereference(im->next); in igmp6_mc_get_next()
2896 while (!im) { in igmp6_mc_get_next()
2905 im = rcu_dereference(state->idev->mc_list); in igmp6_mc_get_next()
2907 return im; in igmp6_mc_get_next()
2912 struct ifmcaddr6 *im = igmp6_mc_get_first(seq); in igmp6_mc_get_idx() local
2913 if (im) in igmp6_mc_get_idx()
2914 while (pos && (im = igmp6_mc_get_next(seq, im)) != NULL) in igmp6_mc_get_idx()
2916 return pos ? NULL : im; in igmp6_mc_get_idx()
2928 struct ifmcaddr6 *im = igmp6_mc_get_next(seq, v); in igmp6_mc_seq_next() local
2931 return im; in igmp6_mc_seq_next()
2947 struct ifmcaddr6 *im = (struct ifmcaddr6 *)v; in igmp6_mc_seq_show() local
2953 &im->mca_addr, in igmp6_mc_seq_show()
2954 im->mca_users, im->mca_flags, in igmp6_mc_seq_show()
2955 (im->mca_flags & MAF_TIMER_RUNNING) ? in igmp6_mc_seq_show()
2956 jiffies_to_clock_t(im->mca_work.timer.expires - jiffies) : 0); in igmp6_mc_seq_show()
2971 struct ifmcaddr6 *im; member
2979 struct ifmcaddr6 *im = NULL; in igmp6_mcf_get_first() local
2984 state->im = NULL; in igmp6_mcf_get_first()
2991 im = rcu_dereference(idev->mc_list); in igmp6_mcf_get_first()
2992 if (likely(im)) { in igmp6_mcf_get_first()
2993 psf = rcu_dereference(im->mca_sources); in igmp6_mcf_get_first()
2995 state->im = im; in igmp6_mcf_get_first()
3010 state->im = rcu_dereference(state->im->next); in igmp6_mcf_get_next()
3011 while (!state->im) { in igmp6_mcf_get_next()
3020 state->im = rcu_dereference(state->idev->mc_list); in igmp6_mcf_get_next()
3022 if (!state->im) in igmp6_mcf_get_next()
3024 psf = rcu_dereference(state->im->mca_sources); in igmp6_mcf_get_next()
3062 if (likely(state->im)) in igmp6_mcf_seq_stop()
3063 state->im = NULL; in igmp6_mcf_seq_stop()
3082 &state->im->mca_addr, in igmp6_mcf_seq_show()