Lines Matching refs:im

731 static void mld_add_delrec(struct inet6_dev *idev, struct ifmcaddr6 *im)  in mld_add_delrec()  argument
747 pmc->idev = im->idev; in mld_add_delrec()
749 pmc->mca_addr = im->mca_addr; in mld_add_delrec()
751 pmc->mca_sfmode = im->mca_sfmode; in mld_add_delrec()
756 mc_dereference(im->mca_tomb, idev)); in mld_add_delrec()
758 mc_dereference(im->mca_sources, idev)); in mld_add_delrec()
759 RCU_INIT_POINTER(im->mca_tomb, NULL); in mld_add_delrec()
760 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()
791 im->idev = pmc->idev; in mld_del_delrec()
792 if (im->mca_sfmode == MCAST_INCLUDE) { in mld_del_delrec()
793 tomb = rcu_replace_pointer(im->mca_tomb, in mld_del_delrec()
795 lockdep_is_held(&im->idev->mc_lock)); in mld_del_delrec()
798 sources = rcu_replace_pointer(im->mca_sources, in mld_del_delrec()
800 lockdep_is_held(&im->idev->mc_lock)); in mld_del_delrec()
802 for_each_psf_mclock(im, psf) in mld_del_delrec()
805 im->mca_crcount = idev->mc_qrv; in mld_del_delrec()
2907 struct ifmcaddr6 *im = NULL; in igmp6_mc_get_first() local
2918 im = rcu_dereference(idev->mc_list); in igmp6_mc_get_first()
2919 if (im) { in igmp6_mc_get_first()
2924 return im; in igmp6_mc_get_first()
2927 static struct ifmcaddr6 *igmp6_mc_get_next(struct seq_file *seq, struct ifmcaddr6 *im) in igmp6_mc_get_next() argument
2931 im = rcu_dereference(im->next); in igmp6_mc_get_next()
2932 while (!im) { in igmp6_mc_get_next()
2941 im = rcu_dereference(state->idev->mc_list); in igmp6_mc_get_next()
2943 return im; in igmp6_mc_get_next()
2948 struct ifmcaddr6 *im = igmp6_mc_get_first(seq); in igmp6_mc_get_idx() local
2949 if (im) in igmp6_mc_get_idx()
2950 while (pos && (im = igmp6_mc_get_next(seq, im)) != NULL) in igmp6_mc_get_idx()
2952 return pos ? NULL : im; in igmp6_mc_get_idx()
2964 struct ifmcaddr6 *im = igmp6_mc_get_next(seq, v); in igmp6_mc_seq_next() local
2967 return im; in igmp6_mc_seq_next()
2983 struct ifmcaddr6 *im = (struct ifmcaddr6 *)v; in igmp6_mc_seq_show() local
2989 &im->mca_addr, in igmp6_mc_seq_show()
2990 im->mca_users, im->mca_flags, in igmp6_mc_seq_show()
2991 (im->mca_flags & MAF_TIMER_RUNNING) ? in igmp6_mc_seq_show()
2992 jiffies_to_clock_t(im->mca_work.timer.expires - jiffies) : 0); in igmp6_mc_seq_show()
3007 struct ifmcaddr6 *im; member
3015 struct ifmcaddr6 *im = NULL; in igmp6_mcf_get_first() local
3020 state->im = NULL; in igmp6_mcf_get_first()
3027 im = rcu_dereference(idev->mc_list); in igmp6_mcf_get_first()
3028 if (likely(im)) { in igmp6_mcf_get_first()
3029 psf = rcu_dereference(im->mca_sources); in igmp6_mcf_get_first()
3031 state->im = im; in igmp6_mcf_get_first()
3046 state->im = rcu_dereference(state->im->next); in igmp6_mcf_get_next()
3047 while (!state->im) { in igmp6_mcf_get_next()
3056 state->im = rcu_dereference(state->idev->mc_list); in igmp6_mcf_get_next()
3058 psf = rcu_dereference(state->im->mca_sources); in igmp6_mcf_get_next()
3096 if (likely(state->im)) in igmp6_mcf_seq_stop()
3097 state->im = NULL; in igmp6_mcf_seq_stop()
3116 &state->im->mca_addr, in igmp6_mcf_seq_show()