patch-2.4.0-test11 linux/drivers/net/3c515.c
Next file: linux/drivers/net/3c523.c
Previous file: linux/drivers/net/3c509.c
Back to the patch index
Back to the overall index
- Lines: 61
- Date:
Tue Nov 14 13:16:37 2000
- Orig file:
v2.4.0-test10/linux/drivers/net/3c515.c
- Orig date:
Tue Oct 31 12:42:26 2000
diff -u --recursive --new-file v2.4.0-test10/linux/drivers/net/3c515.c linux/drivers/net/3c515.c
@@ -428,6 +428,8 @@
{
int cards_found = 0;
+ SET_MODULE_OWNER(dev);
+
cards_found = corkscrew_scan(dev);
if (corkscrew_debug > 0 && cards_found)
@@ -561,6 +563,8 @@
sizeof(struct corkscrew_private) + 15; /* Pad for alignment */
dev = (struct net_device *) kmalloc(dev_size, GFP_KERNEL);
+ if (!dev)
+ return NULL;
memset(dev, 0, dev_size);
/* Align the Rx and Tx ring entries. */
dev->priv =
@@ -586,15 +590,16 @@
ether_setup(dev);
vp->next_module = root_corkscrew_dev;
root_corkscrew_dev = dev;
- if (register_netdev(dev) != 0)
- return 0;
-#else /* not a MODULE */
- if (dev) {
- /* Caution: quad-word alignment required for rings! */
- dev->priv =
- kmalloc(sizeof(struct corkscrew_private), GFP_KERNEL);
- memset(dev->priv, 0, sizeof(struct corkscrew_private));
+ if (register_netdev(dev) != 0) {
+ kfree(dev);
+ return NULL;
}
+ SET_MODULE_OWNER(dev);
+#else /* not a MODULE */
+ /* Caution: quad-word alignment required for rings! */
+ dev->priv =
+ kmalloc(sizeof(struct corkscrew_private), GFP_KERNEL);
+ memset(dev->priv, 0, sizeof(struct corkscrew_private));
dev = init_etherdev(dev, sizeof(struct corkscrew_private));
dev->base_addr = ioaddr;
dev->irq = irq;
@@ -874,8 +879,6 @@
| (vp->bus_master ? DMADone : 0) | UpComplete | DownComplete,
ioaddr + EL3_CMD);
- MOD_INC_USE_COUNT;
-
return 0;
}
@@ -1499,8 +1502,6 @@
vp->tx_skbuff[i] = 0;
}
}
-
- MOD_DEC_USE_COUNT;
return 0;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)