Thread (1 message) 1 message, 1 author, 2002-07-02

Re: init_foodev cleanup questions

From: Crutcher Dunnavant <hidden>
Date: 2002-07-02 14:48:55

++ 01/07/02 23:54 -0500 - Crutcher Dunnavant:
Hello all.

I've got some time on my hands, so I am walking through
all the network drivers, and cleaning up use of init_foodev.
This means zapping foo_setup, and kmallocing or memseting
dev->priv;

I'm doing this at the prompting of an entry on the
kernel-janitors TODO list.

Very much of this code is utter crap, and the fixes are
obvious.

However, I have some questions regarding the legacy probe
code from drivers/net/Space.c

can I safely remove bar_probe() from Space.c, if I also
cleanup bar.c so as to make it a module_init/module_exit
based module?
below is an (untested) example of what I'm talking about. Is this kosher?
--- linux-2.5.24/drivers/net/3c509.c.init_netdev	Mon Jul  1 23:22:12 2002
+++ linux-2.5.24/drivers/net/3c509.c	Mon Jul  1 23:36:31 2002
@@ -233,8 +233,9 @@
 #endif /* __ISAPNP__ */
 static int nopnp;
 
-int __init el3_probe(struct net_device *dev, int card_idx)
+int __init el3_init_one(int card_idx)
 {
+	struct net_device *dev;
 	struct el3_private *lp;
 	short lrs_state = 0xff, i;
 	int ioaddr, irq, if_port;
@@ -1242,7 +1243,6 @@
 
 #endif /* CONFIG_PM */
 
-#ifdef MODULE
 /* Parameters that may be passed into the module. */
 static int debug = -1;
 static int irq[] = {-1, -1, -1, -1, -1, -1, -1, -1};
@@ -1264,8 +1264,8 @@
 MODULE_DEVICE_TABLE(isapnp, el3_isapnp_adapters);
 MODULE_LICENSE("GPL");
 
-int
-init_module(void)
+static __init int
+el3_init(void)
 {
 	int el3_cards = 0;
 
@@ -1273,7 +1273,7 @@
 		el3_debug = debug;
 
 	el3_root_dev = NULL;
-	while (el3_probe(0, el3_cards) == 0) {
+	while (el3_init_one(el3_cards) == 0) {
 		if (irq[el3_cards] > 1)
 			el3_root_dev->irq = irq[el3_cards];
 		if (xcvr[el3_cards] >= 0)
@@ -1284,8 +1284,8 @@
 	return el3_cards ? 0 : -ENODEV;
 }
 
-void
-cleanup_module(void)
+static __exit void
+el3_exit(void)
 {
 	struct net_device *next_dev;
 
@@ -1308,7 +1308,9 @@
 		el3_root_dev = next_dev;
 	}
 }
-#endif /* MODULE */
+
+MODULE_INIT(el3_init);
+MODULE_EXIT(el3_exit);
 
 /*
  * Local variables:
--- linux-2.5.24/drivers/net/Space.c.init_netdev	Mon Jul  1 23:33:59 2002
+++ linux-2.5.24/drivers/net/Space.c	Tue Jul  2 00:32:30 2002
@@ -57,7 +57,6 @@
 extern int znet_probe(struct net_device *);
 extern int express_probe(struct net_device *);
 extern int eepro_probe(struct net_device *);
-extern int el3_probe(struct net_device *);
 extern int at1500_probe(struct net_device *);
 extern int at1700_probe(struct net_device *);
 extern int fmv18x_probe(struct net_device *);
@@ -216,9 +215,6 @@
  * look for EISA/PCI/MCA cards in addition to ISA cards).
  */
 static struct devprobe isa_probes[] __initdata = {
-#ifdef CONFIG_EL3		/* ISA, EISA, MCA 3c5x9 */
-	{el3_probe, 0},
-#endif
 #ifdef CONFIG_HP100 		/* ISA, EISA & PCI */
 	{hp100_probe, 0},
 #endif

-- 
Crutcher Dunnavant <crutcher+spam@eng.ua.edu>
ECSS System Hacker / UA COE CS Senior
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help