patch-2.4.4 linux/net/ipv6/addrconf.c

Next file: linux/net/ipv6/af_inet6.c
Previous file: linux/net/ipv4/udp.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.3/linux/net/ipv6/addrconf.c linux/net/ipv6/addrconf.c
@@ -6,7 +6,7 @@
  *	Pedro Roque		<roque@di.fc.ul.pt>	
  *	Alexey Kuznetsov	<kuznet@ms2.inr.ac.ru>
  *
- *	$Id: addrconf.c,v 1.60 2001/01/01 02:38:30 davem Exp $
+ *	$Id: addrconf.c,v 1.62 2001/04/26 19:11:59 davem Exp $
  *
  *	This program is free software; you can redistribute it and/or
  *      modify it under the terms of the GNU General Public License
@@ -266,6 +266,8 @@
 		in6_dev_hold(ndev);
 		write_unlock_bh(&addrconf_lock);
 
+		ipv6_mc_init_dev(ndev);
+
 #ifdef CONFIG_SYSCTL
 		neigh_sysctl_register(dev, ndev->nd_parms, NET_IPV6, NET_IPV6_NEIGH, "ipv6");
 		addrconf_sysctl_register(ndev, &ndev->cnf);
@@ -283,9 +285,9 @@
 	if ((idev = __in6_dev_get(dev)) == NULL) {
 		if ((idev = ipv6_add_dev(dev)) == NULL)
 			return NULL;
-		if (dev->flags&IFF_UP)
-			ipv6_mc_up(idev);
 	}
+	if (dev->flags&IFF_UP)
+		ipv6_mc_up(idev);
 	return idev;
 }
 
@@ -313,7 +315,9 @@
 {
 	BUG_TRAP(ifp->if_next==NULL);
 	BUG_TRAP(ifp->lst_next==NULL);
+#ifdef NET_REFCNT_DEBUG
 	printk(KERN_DEBUG "inet6_ifa_finish_destroy\n");
+#endif
 
 	in6_dev_put(ifp->idev);
 
@@ -1415,7 +1419,7 @@
 	}
 
 	spin_lock(&ifp->lock);
-	if (ifp->probes++ <= ifp->idev->cnf.rtr_solicits) {
+	if (ifp->probes++ < ifp->idev->cnf.rtr_solicits) {
 		struct in6_addr all_routers;
 
 		addrconf_mod_timer(ifp, AC_RS,

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)