patch-2.4.23 linux-2.4.23/drivers/net/8390.c
Next file: linux-2.4.23/drivers/net/8390.h
Previous file: linux-2.4.23/drivers/net/8139too.c
Back to the patch index
Back to the overall index
- Lines: 66
- Date:
2003-11-28 10:26:20.000000000 -0800
- Orig file:
linux-2.4.22/drivers/net/8390.c
- Orig date:
2003-06-13 07:51:34.000000000 -0700
diff -urN linux-2.4.22/drivers/net/8390.c linux-2.4.23/drivers/net/8390.c
@@ -1000,6 +1000,11 @@
spin_unlock_irqrestore(&ei_local->page_lock, flags);
}
+static inline void ei_device_init(struct ei_device *ei_local)
+{
+ spin_lock_init(&ei_local->page_lock);
+}
+
/**
* ethdev_init - init rest of 8390 device struct
* @dev: network device structure to init
@@ -1015,14 +1020,11 @@
if (dev->priv == NULL)
{
- struct ei_device *ei_local;
-
dev->priv = kmalloc(sizeof(struct ei_device), GFP_KERNEL);
if (dev->priv == NULL)
return -ENOMEM;
memset(dev->priv, 0, sizeof(struct ei_device));
- ei_local = (struct ei_device *)dev->priv;
- spin_lock_init(&ei_local->page_lock);
+ ei_device_init(dev->priv);
}
dev->hard_start_xmit = &ei_start_xmit;
@@ -1033,6 +1035,29 @@
return 0;
}
+
+/* wrapper to make alloc_netdev happy; probably should just cast... */
+static void __ethdev_init(struct net_device *dev)
+{
+ ethdev_init(dev);
+}
+
+/**
+ * alloc_ei_netdev - alloc_etherdev counterpart for 8390
+ *
+ * Allocate 8390-specific net_device.
+ */
+struct net_device *alloc_ei_netdev(void)
+{
+ struct net_device *dev;
+
+ dev = alloc_netdev(sizeof(struct ei_device), "eth%d", __ethdev_init);
+ if (dev)
+ ei_device_init(dev->priv);
+
+ return dev;
+}
+
@@ -1136,6 +1161,7 @@
EXPORT_SYMBOL(ei_tx_timeout);
EXPORT_SYMBOL(ethdev_init);
EXPORT_SYMBOL(NS8390_init);
+EXPORT_SYMBOL(alloc_ei_netdev);
#if defined(MODULE)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)