static int igmp6_group_added(struct ifmcaddr6 *mc) { struct net_device *dev = mc->idev->dev; char buf[MAX_ADDR_LEN]; #ifdef CONFIG_IPV6_MLD6_DEBUG char abuf[128]; #endif spin_lock_bh(&mc->mca_lock); #ifdef CONFIG_IPV6_MLD6_DEBUG in6_ntop(&mc->mca_addr, abuf); MDBG3((KERN_DEBUG "igmp6_group_added(mc=%p): mca_addr=%s, flag=%08x\n", mc, abuf, mc->mca_flags)); #endif if (!(mc->mca_flags&MAF_LOADED)) { mc->mca_flags |= MAF_LOADED; if (ndisc_mc_map(&mc->mca_addr, buf, dev, 0) == 0) dev_mc_add(dev, buf, dev->addr_len, 0); } spin_unlock_bh(&mc->mca_lock); if (dev->flags&IFF_UP) igmp6_join_group(mc); return 0; }
static int igmp6_group_added(struct ifmcaddr6 *mc) { char buf[MAX_ADDR_LEN]; if (!(mc->mca_flags&MAF_LOADED)) { mc->mca_flags |= MAF_LOADED; if (ndisc_mc_map(&mc->mca_addr, buf, mc->dev, 0) == 0) dev_mc_add(mc->dev, buf, mc->dev->addr_len, 0); } if (mc->dev->flags&IFF_UP) igmp6_join_group(mc); return 0; }
static int igmp6_group_added(struct ifmcaddr6 *mc) { struct net_device *dev = mc->idev->dev; char buf[MAX_ADDR_LEN]; spin_lock_bh(&mc->mca_lock); if (!(mc->mca_flags&MAF_LOADED)) { mc->mca_flags |= MAF_LOADED; if (ndisc_mc_map(&mc->mca_addr, buf, dev, 0) == 0) dev_mc_add(dev, buf, dev->addr_len, 0); } spin_unlock_bh(&mc->mca_lock); if (dev->flags&IFF_UP) igmp6_join_group(mc); return 0; }