mcast.c (ebf8889bd1fe3615991ff4494635d237280652a2) mcast.c (b24b8a247ff65c01b252025926fe564209fae4fc)
1/*
2 * Multicast support for IPv6
3 * Linux INET6 implementation
4 *
5 * Authors:
6 * Pedro Roque <roque@di.fc.ul.pt>
7 *
8 * $Id: mcast.c,v 1.40 2002/02/08 03:57:19 davem Exp $

--- 889 unchanged lines hidden (view full) ---

898 mc = kzalloc(sizeof(struct ifmcaddr6), GFP_ATOMIC);
899
900 if (mc == NULL) {
901 write_unlock_bh(&idev->lock);
902 in6_dev_put(idev);
903 return -ENOMEM;
904 }
905
1/*
2 * Multicast support for IPv6
3 * Linux INET6 implementation
4 *
5 * Authors:
6 * Pedro Roque <roque@di.fc.ul.pt>
7 *
8 * $Id: mcast.c,v 1.40 2002/02/08 03:57:19 davem Exp $

--- 889 unchanged lines hidden (view full) ---

898 mc = kzalloc(sizeof(struct ifmcaddr6), GFP_ATOMIC);
899
900 if (mc == NULL) {
901 write_unlock_bh(&idev->lock);
902 in6_dev_put(idev);
903 return -ENOMEM;
904 }
905
906 init_timer(&mc->mca_timer);
907 mc->mca_timer.function = igmp6_timer_handler;
908 mc->mca_timer.data = (unsigned long) mc;
906 setup_timer(&mc->mca_timer, igmp6_timer_handler, (unsigned long)mc);
909
910 ipv6_addr_copy(&mc->mca_addr, addr);
911 mc->idev = idev;
912 mc->mca_users = 1;
913 /* mca_stamp should be updated upon changes */
914 mc->mca_cstamp = mc->mca_tstamp = jiffies;
915 atomic_set(&mc->mca_refcnt, 2);
916 spin_lock_init(&mc->mca_lock);

--- 1337 unchanged lines hidden (view full) ---

2254
2255/* IPv6 device initialization. */
2256
2257void ipv6_mc_init_dev(struct inet6_dev *idev)
2258{
2259 write_lock_bh(&idev->lock);
2260 rwlock_init(&idev->mc_lock);
2261 idev->mc_gq_running = 0;
907
908 ipv6_addr_copy(&mc->mca_addr, addr);
909 mc->idev = idev;
910 mc->mca_users = 1;
911 /* mca_stamp should be updated upon changes */
912 mc->mca_cstamp = mc->mca_tstamp = jiffies;
913 atomic_set(&mc->mca_refcnt, 2);
914 spin_lock_init(&mc->mca_lock);

--- 1337 unchanged lines hidden (view full) ---

2252
2253/* IPv6 device initialization. */
2254
2255void ipv6_mc_init_dev(struct inet6_dev *idev)
2256{
2257 write_lock_bh(&idev->lock);
2258 rwlock_init(&idev->mc_lock);
2259 idev->mc_gq_running = 0;
2262 init_timer(&idev->mc_gq_timer);
2263 idev->mc_gq_timer.data = (unsigned long) idev;
2264 idev->mc_gq_timer.function = &mld_gq_timer_expire;
2260 setup_timer(&idev->mc_gq_timer, mld_gq_timer_expire,
2261 (unsigned long)idev);
2265 idev->mc_tomb = NULL;
2266 idev->mc_ifc_count = 0;
2262 idev->mc_tomb = NULL;
2263 idev->mc_ifc_count = 0;
2267 init_timer(&idev->mc_ifc_timer);
2268 idev->mc_ifc_timer.data = (unsigned long) idev;
2269 idev->mc_ifc_timer.function = &mld_ifc_timer_expire;
2264 setup_timer(&idev->mc_ifc_timer, mld_ifc_timer_expire,
2265 (unsigned long)idev);
2270 idev->mc_qrv = MLD_QRV_DEFAULT;
2271 idev->mc_maxdelay = IGMP6_UNSOLICITED_IVAL;
2272 idev->mc_v1_seen = 0;
2273 write_unlock_bh(&idev->lock);
2274}
2275
2276/*
2277 * Device is about to be destroyed: clean up.

--- 362 unchanged lines hidden ---
2266 idev->mc_qrv = MLD_QRV_DEFAULT;
2267 idev->mc_maxdelay = IGMP6_UNSOLICITED_IVAL;
2268 idev->mc_v1_seen = 0;
2269 write_unlock_bh(&idev->lock);
2270}
2271
2272/*
2273 * Device is about to be destroyed: clean up.

--- 362 unchanged lines hidden ---