Lines Matching refs: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()
2865 struct ifmcaddr6 *im = NULL; in igmp6_mc_get_first() local
2876 im = rcu_dereference(idev->mc_list); in igmp6_mc_get_first()
2877 if (im) { in igmp6_mc_get_first()
2882 return im; in igmp6_mc_get_first()
2885 static struct ifmcaddr6 *igmp6_mc_get_next(struct seq_file *seq, struct ifmcaddr6 *im) in igmp6_mc_get_next() argument
2889 im = rcu_dereference(im->next); in igmp6_mc_get_next()
2890 while (!im) { in igmp6_mc_get_next()
2899 im = rcu_dereference(state->idev->mc_list); in igmp6_mc_get_next()
2901 return im; in igmp6_mc_get_next()
2906 struct ifmcaddr6 *im = igmp6_mc_get_first(seq); in igmp6_mc_get_idx() local
2907 if (im) in igmp6_mc_get_idx()
2908 while (pos && (im = igmp6_mc_get_next(seq, im)) != NULL) in igmp6_mc_get_idx()
2910 return pos ? NULL : im; in igmp6_mc_get_idx()
2922 struct ifmcaddr6 *im = igmp6_mc_get_next(seq, v); in igmp6_mc_seq_next() local
2925 return im; in igmp6_mc_seq_next()
2941 struct ifmcaddr6 *im = (struct ifmcaddr6 *)v; in igmp6_mc_seq_show() local
2947 &im->mca_addr, in igmp6_mc_seq_show()
2948 im->mca_users, im->mca_flags, in igmp6_mc_seq_show()
2949 (im->mca_flags & MAF_TIMER_RUNNING) ? in igmp6_mc_seq_show()
2950 jiffies_to_clock_t(im->mca_work.timer.expires - jiffies) : 0); in igmp6_mc_seq_show()
2965 struct ifmcaddr6 *im; member
2973 struct ifmcaddr6 *im = NULL; in igmp6_mcf_get_first() local
2978 state->im = NULL; in igmp6_mcf_get_first()
2985 im = rcu_dereference(idev->mc_list); in igmp6_mcf_get_first()
2986 if (likely(im)) { in igmp6_mcf_get_first()
2987 psf = rcu_dereference(im->mca_sources); in igmp6_mcf_get_first()
2989 state->im = im; in igmp6_mcf_get_first()
3004 state->im = rcu_dereference(state->im->next); in igmp6_mcf_get_next()
3005 while (!state->im) { in igmp6_mcf_get_next()
3014 state->im = rcu_dereference(state->idev->mc_list); in igmp6_mcf_get_next()
3016 if (!state->im) in igmp6_mcf_get_next()
3018 psf = rcu_dereference(state->im->mca_sources); in igmp6_mcf_get_next()
3056 if (likely(state->im)) in igmp6_mcf_seq_stop()
3057 state->im = NULL; in igmp6_mcf_seq_stop()
3076 &state->im->mca_addr, in igmp6_mcf_seq_show()