#endif
 }
 
-static void igmp_group_added(struct ip_mc_list *im, unsigned int mode)
+static void igmp_group_added(struct ip_mc_list *im)
 {
        struct in_device *in_dev = im->interface;
 #ifdef CONFIG_IP_MULTICAST
         * not send filter-mode change record as the mode should be from
         * IN() to IN(A).
         */
-       if (mode == MCAST_EXCLUDE)
+       if (im->sfmode == MCAST_EXCLUDE)
                im->crcount = in_dev->mr_qrv ?: net->ipv4.sysctl_igmp_qrv;
 
        igmp_ifc_event(in_dev);
 #ifdef CONFIG_IP_MULTICAST
        igmpv3_del_delrec(in_dev, im);
 #endif
-       igmp_group_added(im, mode);
+       igmp_group_added(im);
        if (!in_dev->dead)
                ip_rt_multicast_event(in_dev);
 out:
 #ifdef CONFIG_IP_MULTICAST
                igmpv3_del_delrec(in_dev, pmc);
 #endif
-               igmp_group_added(pmc, pmc->sfmode);
+               igmp_group_added(pmc);
        }
 }
 
 #ifdef CONFIG_IP_MULTICAST
                igmpv3_del_delrec(in_dev, pmc);
 #endif
-               igmp_group_added(pmc, pmc->sfmode);
+               igmp_group_added(pmc);
        }
 }
 
 
        return rv;
 }
 
-static void igmp6_group_added(struct ifmcaddr6 *mc, unsigned int mode)
+static void igmp6_group_added(struct ifmcaddr6 *mc)
 {
        struct net_device *dev = mc->idev->dev;
        char buf[MAX_ADDR_LEN];
         * should not send filter-mode change record as the mode
         * should be from IN() to IN(A).
         */
-       if (mode == MCAST_EXCLUDE)
+       if (mc->mca_sfmode == MCAST_EXCLUDE)
                mc->mca_crcount = mc->idev->mc_qrv;
 
        mld_ifc_event(mc->idev);
        write_unlock_bh(&idev->lock);
 
        mld_del_delrec(idev, mc);
-       igmp6_group_added(mc, mode);
+       igmp6_group_added(mc);
        ma_put(mc);
        return 0;
 }
        ipv6_mc_reset(idev);
        for (i = idev->mc_list; i; i = i->next) {
                mld_del_delrec(idev, i);
-               igmp6_group_added(i, i->mca_sfmode);
+               igmp6_group_added(i);
        }
        read_unlock_bh(&idev->lock);
 }