patch-2.4.0-test11 linux/drivers/net/3c523.c

Next file: linux/drivers/net/3c527.c
Previous file: linux/drivers/net/3c515.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test10/linux/drivers/net/3c523.c linux/drivers/net/3c523.c
@@ -271,7 +271,6 @@
 	netif_stop_queue(dev);
 	elmc_id_reset586();	/* the hard way to stop the receiver */
 	free_irq(dev->irq, dev);
-	MOD_DEC_USE_COUNT;
 	return 0;
 }
 
@@ -281,21 +280,21 @@
 
 static int elmc_open(struct net_device *dev)
 {
+	int ret;
 
 	elmc_id_attn586();	/* disable interrupts */
 
-	if (request_irq(dev->irq, &elmc_interrupt, SA_SHIRQ | SA_SAMPLE_RANDOM,
-			"3c523", dev)
-	    ) {
+	ret = request_irq(dev->irq, &elmc_interrupt, SA_SHIRQ | SA_SAMPLE_RANDOM,
+			  dev->name, dev);
+	if (ret) {
 		printk(KERN_ERR "%s: couldn't get irq %d\n", dev->name, dev->irq);
 		elmc_id_reset586();
-		return -EAGAIN;
+		return ret;
 	}
 	alloc586(dev);
 	init586(dev);
 	startrecv586(dev);
 	netif_start_queue(dev);
-	MOD_INC_USE_COUNT;
 	return 0;		/* most done by init */
 }
 
@@ -409,13 +408,14 @@
 int __init elmc_probe(struct net_device *dev)
 {
 	static int slot = 0;
-	int base_addr = dev ? dev->base_addr : 0;
-	int irq = dev ? dev->irq : 0;
+	int base_addr = dev->base_addr;
+	int irq = dev->irq;
 	u_char status = 0;
 	u_char revision = 0;
 	int i = 0;
 	unsigned int size = 0;
 
+	SET_MODULE_OWNER(dev);
 	if (MCA_bus == 0) {
 		return -ENODEV;
 	}
@@ -1208,15 +1208,9 @@
 /* Increase if needed ;) */
 #define MAX_3C523_CARDS 4
 
-static struct net_device dev_elmc[MAX_3C523_CARDS] =
-{	
-	{
-	"", 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL
-	},
-};
-
-static int irq[MAX_3C523_CARDS] = {0,};
-static int io[MAX_3C523_CARDS] = {0,};
+static struct net_device dev_elmc[MAX_3C523_CARDS];
+static int irq[MAX_3C523_CARDS];
+static int io[MAX_3C523_CARDS];
 MODULE_PARM(irq, "1-" __MODULE_STRING(MAX_3C523_CARDS) "i");
 MODULE_PARM(io, "1-" __MODULE_STRING(MAX_3C523_CARDS) "i");
 

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