patch-1.3.33 linux/net/core/dev.c

Next file: linux/net/ethernet/eth.c
Previous file: linux/net/Changes
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v1.3.32/linux/net/core/dev.c linux/net/core/dev.c
@@ -231,12 +231,6 @@
 		/*
 		 *	Initialise multicasting status 
 		 */
-#ifdef CONFIG_IP_MULTICAST
-		/* 
-		 *	Join the all host group 
-		 */
-		ip_mc_allhost(dev);
-#endif				
 		dev_mc_upload(dev);
 		notifier_call_chain(&netdev_chain, NETDEV_UP, dev);
 	}
@@ -367,7 +361,7 @@
 
 	save_flags(flags);
 	cli();	
-	if (/*dev_nit && */!where) 	/* Always keep order. It helps other hosts
+	if (!where)	 	/* Always keep order. It helps other hosts
 					   far more than it costs us */
 	{
 		skb_queue_tail(dev->buffs + pri,skb);
@@ -1314,12 +1308,30 @@
  *	present) and leaves us with a valid list of present and active devices.
  *
  */
- 
-void dev_init(void)
+extern int lance_init(void);
+extern int pi_init(void);
+extern int dec21040_init(void);
+
+int net_dev_init(void)
 {
 	struct device *dev, **dp;
 
 	/*
+	 * This is VeryUgly(tm).
+	 *
+	 * Some devices want to be initialized eary..
+	 */
+#if defined(CONFIG_LANCE)
+	lance_init();
+#endif
+#if defined(CONFIG_PI)
+	pi_init();
+#endif	
+#if defined(CONFIG_DEC_ELCP)
+	dec21040_init();
+#endif	
+
+	/*
 	 *	Add the devices.
 	 *	If the call to dev->init fails, the dev is removed
 	 *	from the chain disconnecting the device until the
@@ -1346,11 +1358,16 @@
 			dp = &dev->next;
 		}
 	}
+
 	proc_net_register(&(struct proc_dir_entry) {
 		PROC_NET_DEV, 3, "dev",
 		S_IFREG | S_IRUGO, 1, 0, 0,
 		0, &proc_net_inode_operations,
 		dev_get_info
 	});
+
+	bh_base[NET_BH].routine = net_bh;
+	enable_bh(NET_BH);
+	return 0;
 }
 

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov with Sam's (original) version
of this