* [patch 00/14] Network devices ops (wave 4)
@ 2008-11-26 1:14 Stephen Hemminger
2008-11-26 1:14 ` [patch 01/14] 8390: add common net_device ops Stephen Hemminger
` (14 more replies)
0 siblings, 15 replies; 17+ messages in thread
From: Stephen Hemminger @ 2008-11-26 1:14 UTC (permalink / raw)
To: David Miller; +Cc: netdev
This fixes the build bug for 8390 library based drivers,
then updates a bunch more drivers. Build tested all the network drivers
on x86.
^ permalink raw reply [flat|nested] 17+ messages in thread
* [patch 01/14] 8390: add common net_device ops
2008-11-26 1:14 [patch 00/14] Network devices ops (wave 4) Stephen Hemminger
@ 2008-11-26 1:14 ` Stephen Hemminger
2008-11-26 1:14 ` [patch 02/14] wd: use net_device_ops Stephen Hemminger
` (13 subsequent siblings)
14 siblings, 0 replies; 17+ messages in thread
From: Stephen Hemminger @ 2008-11-26 1:14 UTC (permalink / raw)
To: David Miller; +Cc: netdev
[-- Attachment #1: 8390-netdev-ops.patch --]
[-- Type: text/plain, Size: 8483 bytes --]
Fix the defactoring of ei_XXX functions in 8390 and 8390p.
Remove the tx_timeout hack since no driver including the 3c503
overrides tx_timeout at this time, looks like a legacy thing.
Also, since several drivers all have same hooks, provide common
netdev_ops.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
---
drivers/net/8390.c | 39 +++++++++++++++++++++++++++++++++++++++
drivers/net/8390.h | 18 ++++++++++++++----
drivers/net/8390p.c | 39 +++++++++++++++++++++++++++++++++++++++
drivers/net/lib8390.c | 19 +++++--------------
4 files changed, 97 insertions(+), 18 deletions(-)
--- a/drivers/net/8390.c 2008-11-25 17:08:44.000000000 -0800
+++ b/drivers/net/8390.c 2008-11-25 17:08:47.000000000 -0800
@@ -17,6 +17,30 @@ int ei_close(struct net_device *dev)
}
EXPORT_SYMBOL(ei_close);
+int ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
+{
+ return __ei_start_xmit(skb, dev);
+}
+EXPORT_SYMBOL(ei_start_xmit);
+
+struct net_device_stats *ei_get_stats(struct net_device *dev)
+{
+ return __ei_get_stats(dev);
+}
+EXPORT_SYMBOL(ei_get_stats);
+
+void ei_set_multicast_list(struct net_device *dev)
+{
+ __ei_set_multicast_list(dev);
+}
+EXPORT_SYMBOL(ei_set_multicast_list);
+
+void ei_tx_timeout(struct net_device *dev)
+{
+ __ei_tx_timeout(dev);
+}
+EXPORT_SYMBOL(ei_tx_timeout);
+
irqreturn_t ei_interrupt(int irq, void *dev_id)
{
return __ei_interrupt(irq, dev_id);
@@ -31,6 +55,21 @@ void ei_poll(struct net_device *dev)
EXPORT_SYMBOL(ei_poll);
#endif
+const struct net_device_ops ei_netdev_ops = {
+ .ndo_open = ei_open,
+ .ndo_stop = ei_close,
+ .ndo_start_xmit = ei_start_xmit,
+ .ndo_tx_timeout = ei_tx_timeout,
+ .ndo_get_stats = ei_get_stats,
+ .ndo_set_multicast_list = ei_set_multicast_list,
+ .ndo_validate_addr = eth_validate_addr,
+ .ndo_change_mtu = eth_change_mtu,
+#ifdef CONFIG_NET_POLL_CONTROLLER
+ .ndo_poll_controller = ei_poll,
+#endif
+};
+EXPORT_SYMBOL(ei_netdev_ops);
+
struct net_device *__alloc_ei_netdev(int size)
{
return ____alloc_ei_netdev(size);
--- a/drivers/net/8390.h 2008-11-25 17:08:44.000000000 -0800
+++ b/drivers/net/8390.h 2008-11-25 17:09:33.000000000 -0800
@@ -33,16 +33,19 @@ extern void ei_poll(struct net_device *d
extern void eip_poll(struct net_device *dev);
#endif
-extern void ei_tx_timeout(struct net_device *dev);
-extern int ei_start_xmit(struct sk_buff *skb, struct net_device *dev);
-extern void ei_set_multicast_list(struct net_device *dev);
-extern struct net_device_stats *ei_get_stats(struct net_device *dev);
/* Without I/O delay - non ISA or later chips */
extern void NS8390_init(struct net_device *dev, int startp);
extern int ei_open(struct net_device *dev);
extern int ei_close(struct net_device *dev);
extern irqreturn_t ei_interrupt(int irq, void *dev_id);
+extern void ei_tx_timeout(struct net_device *dev);
+extern int ei_start_xmit(struct sk_buff *skb, struct net_device *dev);
+extern void ei_set_multicast_list(struct net_device *dev);
+extern struct net_device_stats *ei_get_stats(struct net_device *dev);
+
+extern const struct net_device_ops ei_netdev_ops;
+
extern struct net_device *__alloc_ei_netdev(int size);
static inline struct net_device *alloc_ei_netdev(void)
{
@@ -54,6 +57,13 @@ extern void NS8390p_init(struct net_devi
extern int eip_open(struct net_device *dev);
extern int eip_close(struct net_device *dev);
extern irqreturn_t eip_interrupt(int irq, void *dev_id);
+extern void eip_tx_timeout(struct net_device *dev);
+extern int eip_start_xmit(struct sk_buff *skb, struct net_device *dev);
+extern void eip_set_multicast_list(struct net_device *dev);
+extern struct net_device_stats *eip_get_stats(struct net_device *dev);
+
+extern const struct net_device_ops eip_netdev_ops;
+
extern struct net_device *__alloc_eip_netdev(int size);
static inline struct net_device *alloc_eip_netdev(void)
{
--- a/drivers/net/8390p.c 2008-11-25 17:08:44.000000000 -0800
+++ b/drivers/net/8390p.c 2008-11-25 17:08:47.000000000 -0800
@@ -22,6 +22,30 @@ int eip_close(struct net_device *dev)
}
EXPORT_SYMBOL(eip_close);
+int eip_start_xmit(struct sk_buff *skb, struct net_device *dev)
+{
+ return __ei_start_xmit(skb, dev);
+}
+EXPORT_SYMBOL(eip_start_xmit);
+
+struct net_device_stats *eip_get_stats(struct net_device *dev)
+{
+ return __ei_get_stats(dev);
+}
+EXPORT_SYMBOL(eip_get_stats);
+
+void eip_set_multicast_list(struct net_device *dev)
+{
+ __ei_set_multicast_list(dev);
+}
+EXPORT_SYMBOL(eip_set_multicast_list);
+
+void eip_tx_timeout(struct net_device *dev)
+{
+ __ei_tx_timeout(dev);
+}
+EXPORT_SYMBOL(eip_tx_timeout);
+
irqreturn_t eip_interrupt(int irq, void *dev_id)
{
return __ei_interrupt(irq, dev_id);
@@ -36,6 +60,21 @@ void eip_poll(struct net_device *dev)
EXPORT_SYMBOL(eip_poll);
#endif
+const struct net_device_ops eip_netdev_ops = {
+ .ndo_open = eip_open,
+ .ndo_stop = eip_close,
+ .ndo_start_xmit = eip_start_xmit,
+ .ndo_tx_timeout = eip_tx_timeout,
+ .ndo_get_stats = eip_get_stats,
+ .ndo_set_multicast_list = eip_set_multicast_list,
+ .ndo_validate_addr = eth_validate_addr,
+ .ndo_change_mtu = eth_change_mtu,
+#ifdef CONFIG_NET_POLL_CONTROLLER
+ .ndo_poll_controller = eip_poll,
+#endif
+};
+EXPORT_SYMBOL(eip_netdev_ops);
+
struct net_device *__alloc_eip_netdev(int size)
{
return ____alloc_ei_netdev(size);
--- a/drivers/net/lib8390.c 2008-11-25 17:08:44.000000000 -0800
+++ b/drivers/net/lib8390.c 2008-11-25 17:08:47.000000000 -0800
@@ -205,12 +205,6 @@ static int __ei_open(struct net_device *
unsigned long flags;
struct ei_device *ei_local = (struct ei_device *) netdev_priv(dev);
- /* The card I/O part of the driver (e.g. 3c503) can hook a Tx timeout
- wrapper that does e.g. media check & then calls ei_tx_timeout. */
-#ifdef CONFIG_COMPAT_NET_DEV_OPS
- if (dev->tx_timeout == NULL)
- dev->tx_timeout = ei_tx_timeout;
-#endif
if (dev->watchdog_timeo <= 0)
dev->watchdog_timeo = TX_TIMEOUT;
@@ -259,7 +253,7 @@ static int __ei_close(struct net_device
* completed (or failed) - i.e. never posted a Tx related interrupt.
*/
-void ei_tx_timeout(struct net_device *dev)
+static void __ei_tx_timeout(struct net_device *dev)
{
unsigned long e8390_base = dev->base_addr;
struct ei_device *ei_local = (struct ei_device *) netdev_priv(dev);
@@ -296,7 +290,6 @@ void ei_tx_timeout(struct net_device *de
enable_irq_lockdep(dev->irq);
netif_wake_queue(dev);
}
-EXPORT_SYMBOL_GPL(ei_tx_timeout);
/**
* ei_start_xmit - begin packet transmission
@@ -306,7 +299,7 @@ EXPORT_SYMBOL_GPL(ei_tx_timeout);
* Sends a packet to an 8390 network device.
*/
-int ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
+static int __ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
{
unsigned long e8390_base = dev->base_addr;
struct ei_device *ei_local = (struct ei_device *) netdev_priv(dev);
@@ -423,7 +416,6 @@ int ei_start_xmit(struct sk_buff *skb, s
return 0;
}
-EXPORT_SYMBOL_GPL(ei_start_xmit);
/**
* ei_interrupt - handle the interrupts from an 8390
@@ -885,7 +877,7 @@ static void ei_rx_overrun(struct net_dev
* Collect the stats. This is called unlocked and from several contexts.
*/
-struct net_device_stats *ei_get_stats(struct net_device *dev)
+static struct net_device_stats *__ei_get_stats(struct net_device *dev)
{
unsigned long ioaddr = dev->base_addr;
struct ei_device *ei_local = (struct ei_device *) netdev_priv(dev);
@@ -904,7 +896,6 @@ struct net_device_stats *ei_get_stats(st
return &dev->stats;
}
-EXPORT_SYMBOL_GPL(ei_get_stats);
/*
* Form the 64 bit 8390 multicast table from the linked list of addresses
@@ -995,7 +986,7 @@ static void do_set_multicast_list(struct
* not called too often. Must protect against both bh and irq users
*/
-void ei_set_multicast_list(struct net_device *dev)
+static void __ei_set_multicast_list(struct net_device *dev)
{
unsigned long flags;
struct ei_device *ei_local = (struct ei_device*)netdev_priv(dev);
@@ -1004,7 +995,6 @@ void ei_set_multicast_list(struct net_de
do_set_multicast_list(dev);
spin_unlock_irqrestore(&ei_local->page_lock, flags);
}
-EXPORT_SYMBOL_GPL(ei_set_multicast_list);
/**
* ethdev_setup - init rest of 8390 device struct
@@ -1024,6 +1014,7 @@ static void ethdev_setup(struct net_devi
dev->hard_start_xmit = ei_start_xmit;
dev->get_stats = ei_get_stats;
dev->set_multicast_list = ei_set_multicast_list;
+ dev->tx_timeout = __ei_tx_timeout;
#endif
ether_setup(dev);
^ permalink raw reply [flat|nested] 17+ messages in thread
* [patch 02/14] wd: use net_device_ops
2008-11-26 1:14 [patch 00/14] Network devices ops (wave 4) Stephen Hemminger
2008-11-26 1:14 ` [patch 01/14] 8390: add common net_device ops Stephen Hemminger
@ 2008-11-26 1:14 ` Stephen Hemminger
2008-11-26 1:14 ` [patch 03/14] hp-plus: convert to net_device_ops Stephen Hemminger
` (12 subsequent siblings)
14 siblings, 0 replies; 17+ messages in thread
From: Stephen Hemminger @ 2008-11-26 1:14 UTC (permalink / raw)
To: David Miller; +Cc: netdev
[-- Attachment #1: wd-netdev-ops.patch --]
[-- Type: text/plain, Size: 1395 bytes --]
Another driver converted to net_device_ops; Compile tested only.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
--- a/drivers/net/wd.c 2008-11-25 16:23:38.000000000 -0800
+++ b/drivers/net/wd.c 2008-11-25 16:24:48.000000000 -0800
@@ -147,6 +147,20 @@ out:
}
#endif
+static const struct net_device_ops wd_netdev_ops = {
+ .ndo_open = wd_open,
+ .ndo_stop = wd_close,
+ .ndo_start_xmit = ei_start_xmit,
+ .ndo_tx_timeout = ei_tx_timeout,
+ .ndo_get_stats = ei_get_stats,
+ .ndo_set_multicast_list = ei_set_multicast_list,
+ .ndo_validate_addr = eth_validate_addr,
+ .ndo_change_mtu = eth_change_mtu,
+#ifdef CONFIG_NET_POLL_CONTROLLER
+ .ndo_poll_controller = ei_poll,
+#endif
+};
+
static int __init wd_probe1(struct net_device *dev, int ioaddr)
{
int i;
@@ -331,11 +345,8 @@ static int __init wd_probe1(struct net_d
ei_status.block_input = &wd_block_input;
ei_status.block_output = &wd_block_output;
ei_status.get_8390_hdr = &wd_get_8390_hdr;
- dev->open = &wd_open;
- dev->stop = &wd_close;
-#ifdef CONFIG_NET_POLL_CONTROLLER
- dev->poll_controller = ei_poll;
-#endif
+
+ dev->netdev_ops = &wd_netdev_ops;
NS8390_init(dev, 0);
#if 1
@@ -365,8 +376,7 @@ wd_open(struct net_device *dev)
outb(ei_status.reg5, ioaddr+WD_CMDREG5);
outb(ei_status.reg0, ioaddr); /* WD_CMDREG */
- ei_open(dev);
- return 0;
+ return ei_open(dev);
}
static void
^ permalink raw reply [flat|nested] 17+ messages in thread
* [patch 03/14] hp-plus: convert to net_device_ops
2008-11-26 1:14 [patch 00/14] Network devices ops (wave 4) Stephen Hemminger
2008-11-26 1:14 ` [patch 01/14] 8390: add common net_device ops Stephen Hemminger
2008-11-26 1:14 ` [patch 02/14] wd: use net_device_ops Stephen Hemminger
@ 2008-11-26 1:14 ` Stephen Hemminger
2008-11-26 1:14 ` [patch 04/14] smc: " Stephen Hemminger
` (11 subsequent siblings)
14 siblings, 0 replies; 17+ messages in thread
From: Stephen Hemminger @ 2008-11-26 1:14 UTC (permalink / raw)
To: David Miller; +Cc: netdev
[-- Attachment #1: hp-plus.patch --]
[-- Type: text/plain, Size: 1472 bytes --]
Another driver converted to new infrastructure.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
--- a/drivers/net/hp-plus.c 2008-11-25 16:23:38.000000000 -0800
+++ b/drivers/net/hp-plus.c 2008-11-25 16:40:50.000000000 -0800
@@ -158,6 +158,21 @@ out:
}
#endif
+static const struct net_device_ops hpp_netdev_ops = {
+ .ndo_open = hpp_open,
+ .ndo_stop = hpp_close,
+ .ndo_start_xmit = ei_start_xmit,
+ .ndo_tx_timeout = ei_tx_timeout,
+ .ndo_get_stats = ei_get_stats,
+ .ndo_set_multicast_list = ei_set_multicast_list,
+ .ndo_validate_addr = eth_validate_addr,
+ .ndo_change_mtu = eth_change_mtu,
+#ifdef CONFIG_NET_POLL_CONTROLLER
+ .ndo_poll_controller = ei_poll,
+#endif
+};
+
+
/* Do the interesting part of the probe at a single address. */
static int __init hpp_probe1(struct net_device *dev, int ioaddr)
{
@@ -226,11 +241,7 @@ static int __init hpp_probe1(struct net_
/* Set the base address to point to the NIC, not the "real" base! */
dev->base_addr = ioaddr + NIC_OFFSET;
- dev->open = &hpp_open;
- dev->stop = &hpp_close;
-#ifdef CONFIG_NET_POLL_CONTROLLER
- dev->poll_controller = ei_poll;
-#endif
+ dev->netdev_ops = &hpp_netdev_ops;
ei_status.name = name;
ei_status.word16 = 0; /* Agggghhhhh! Debug time: 2 days! */
@@ -301,8 +312,7 @@ hpp_open(struct net_device *dev)
/* Select the operational page. */
outw(Perf_Page, ioaddr + HP_PAGING);
- eip_open(dev);
- return 0;
+ return eip_open(dev);
}
static int
^ permalink raw reply [flat|nested] 17+ messages in thread
* [patch 04/14] smc: convert to net_device_ops
2008-11-26 1:14 [patch 00/14] Network devices ops (wave 4) Stephen Hemminger
` (2 preceding siblings ...)
2008-11-26 1:14 ` [patch 03/14] hp-plus: convert to net_device_ops Stephen Hemminger
@ 2008-11-26 1:14 ` Stephen Hemminger
2008-11-26 1:14 ` [patch 05/14] ne3210: " Stephen Hemminger
` (10 subsequent siblings)
14 siblings, 0 replies; 17+ messages in thread
From: Stephen Hemminger @ 2008-11-26 1:14 UTC (permalink / raw)
To: David Miller; +Cc: netdev
[-- Attachment #1: smc-netdev-ops.patch --]
[-- Type: text/plain, Size: 2311 bytes --]
Convert both eisa and mca versions of this driver, though I doubt
anyone still has the hardware.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
--- a/drivers/net/smc-mca.c 2008-11-25 16:23:38.000000000 -0800
+++ b/drivers/net/smc-mca.c 2008-11-25 16:41:33.000000000 -0800
@@ -182,6 +182,22 @@ static char *smc_mca_adapter_names[] __i
static int ultra_found = 0;
+
+static const struct net_device_ops ultra_netdev_ops = {
+ .ndo_open = ultramca_open,
+ .ndo_stop = ultramca_close_card,
+
+ .ndo_start_xmit = ei_start_xmit,
+ .ndo_tx_timeout = ei_tx_timeout,
+ .ndo_get_stats = ei_get_stats,
+ .ndo_set_multicast_list = ei_set_multicast_list,
+ .ndo_validate_addr = eth_validate_addr,
+ .ndo_change_mtu = eth_change_mtu,
+#ifdef CONFIG_NET_POLL_CONTROLLER
+ .ndo_poll_controller = ei_poll,
+#endif
+};
+
static int __init ultramca_probe(struct device *gen_dev)
{
unsigned short ioaddr;
@@ -384,11 +400,7 @@ static int __init ultramca_probe(struct
ei_status.priv = slot;
- dev->open = &ultramca_open;
- dev->stop = &ultramca_close_card;
-#ifdef CONFIG_NET_POLL_CONTROLLER
- dev->poll_controller = ei_poll;
-#endif
+ dev->netdev_ops = &ultramca_netdev_ops;
NS8390_init(dev, 0);
--- a/drivers/net/smc-ultra.c 2008-11-25 16:23:38.000000000 -0800
+++ b/drivers/net/smc-ultra.c 2008-11-25 16:41:33.000000000 -0800
@@ -187,6 +187,21 @@ out:
}
#endif
+static const struct net_device_ops ultra_netdev_ops = {
+ .ndo_open = ultra_open,
+ .ndo_stop = ultra_close_card,
+
+ .ndo_start_xmit = ei_start_xmit,
+ .ndo_tx_timeout = ei_tx_timeout,
+ .ndo_get_stats = ei_get_stats,
+ .ndo_set_multicast_list = ei_set_multicast_list,
+ .ndo_validate_addr = eth_validate_addr,
+ .ndo_change_mtu = eth_change_mtu,
+#ifdef CONFIG_NET_POLL_CONTROLLER
+ .ndo_poll_controller = ei_poll,
+#endif
+};
+
static int __init ultra_probe1(struct net_device *dev, int ioaddr)
{
int i, retval;
@@ -300,11 +315,8 @@ static int __init ultra_probe1(struct ne
ei_status.get_8390_hdr = &ultra_get_8390_hdr;
}
ei_status.reset_8390 = &ultra_reset_8390;
- dev->open = &ultra_open;
- dev->stop = &ultra_close_card;
-#ifdef CONFIG_NET_POLL_CONTROLLER
- dev->poll_controller = ei_poll;
-#endif
+
+ dev->netdev_ops = &ultra_netdev_ops;
NS8390_init(dev, 0);
retval = register_netdev(dev);
^ permalink raw reply [flat|nested] 17+ messages in thread
* [patch 05/14] ne3210: convert to net_device_ops
2008-11-26 1:14 [patch 00/14] Network devices ops (wave 4) Stephen Hemminger
` (3 preceding siblings ...)
2008-11-26 1:14 ` [patch 04/14] smc: " Stephen Hemminger
@ 2008-11-26 1:14 ` Stephen Hemminger
2008-11-26 1:14 ` [patch 06/14] es3210: " Stephen Hemminger
` (9 subsequent siblings)
14 siblings, 0 replies; 17+ messages in thread
From: Stephen Hemminger @ 2008-11-26 1:14 UTC (permalink / raw)
To: David Miller; +Cc: netdev
[-- Attachment #1: ne3210-netdev.patch --]
[-- Type: text/plain, Size: 1414 bytes --]
By having common code in 8390.o don't need net_dev_ops in
the driver.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
--- a/drivers/net/ne3210.c 2008-11-25 16:23:37.000000000 -0800
+++ b/drivers/net/ne3210.c 2008-11-25 16:41:37.000000000 -0800
@@ -45,9 +45,6 @@
#define DRV_NAME "ne3210"
-static int ne3210_open(struct net_device *dev);
-static int ne3210_close(struct net_device *dev);
-
static void ne3210_reset_8390(struct net_device *dev);
static void ne3210_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr, int ring_page);
@@ -199,11 +196,8 @@ static int __init ne3210_eisa_probe (str
ei_status.block_output = &ne3210_block_output;
ei_status.get_8390_hdr = &ne3210_get_8390_hdr;
- dev->open = &ne3210_open;
- dev->stop = &ne3210_close;
-#ifdef CONFIG_NET_POLL_CONTROLLER
- dev->poll_controller = ei_poll;
-#endif
+ dev->netdev_ops = &ei_netdev_ops;
+
dev->if_port = ifmap_val[port_index];
if ((retval = register_netdev (dev)))
@@ -320,22 +314,6 @@ static void ne3210_block_output(struct n
memcpy_toio(shmem, buf, count);
}
-static int ne3210_open(struct net_device *dev)
-{
- ei_open(dev);
- return 0;
-}
-
-static int ne3210_close(struct net_device *dev)
-{
-
- if (ei_debug > 1)
- printk("%s: Shutting down ethercard.\n", dev->name);
-
- ei_close(dev);
- return 0;
-}
-
static struct eisa_device_id ne3210_ids[] = {
{ "EGL0101" },
{ "NVL1801" },
^ permalink raw reply [flat|nested] 17+ messages in thread
* [patch 06/14] es3210: convert to net_device_ops
2008-11-26 1:14 [patch 00/14] Network devices ops (wave 4) Stephen Hemminger
` (4 preceding siblings ...)
2008-11-26 1:14 ` [patch 05/14] ne3210: " Stephen Hemminger
@ 2008-11-26 1:14 ` Stephen Hemminger
2008-11-26 1:14 ` [patch 07/14] e2100: " Stephen Hemminger
` (8 subsequent siblings)
14 siblings, 0 replies; 17+ messages in thread
From: Stephen Hemminger @ 2008-11-26 1:14 UTC (permalink / raw)
To: David Miller; +Cc: netdev
[-- Attachment #1: es3210-netdev.patch --]
[-- Type: text/plain, Size: 1400 bytes --]
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
--- a/drivers/net/es3210.c 2008-11-25 16:23:37.000000000 -0800
+++ b/drivers/net/es3210.c 2008-11-25 16:41:39.000000000 -0800
@@ -64,9 +64,6 @@ static const char version[] =
static int es_probe1(struct net_device *dev, int ioaddr);
-static int es_open(struct net_device *dev);
-static int es_close(struct net_device *dev);
-
static void es_reset_8390(struct net_device *dev);
static void es_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr, int ring_page);
@@ -289,11 +286,7 @@ static int __init es_probe1(struct net_d
ei_status.block_output = &es_block_output;
ei_status.get_8390_hdr = &es_get_8390_hdr;
- dev->open = &es_open;
- dev->stop = &es_close;
-#ifdef CONFIG_NET_POLL_CONTROLLER
- dev->poll_controller = ei_poll;
-#endif
+ dev->netdev_ops = &ei_netdev_ops;
NS8390_init(dev, 0);
retval = register_netdev(dev);
@@ -385,22 +378,6 @@ static void es_block_output(struct net_d
memcpy_toio(shmem, buf, count);
}
-static int es_open(struct net_device *dev)
-{
- ei_open(dev);
- return 0;
-}
-
-static int es_close(struct net_device *dev)
-{
-
- if (ei_debug > 1)
- printk("%s: Shutting down ethercard.\n", dev->name);
-
- ei_close(dev);
- return 0;
-}
-
#ifdef MODULE
#define MAX_ES_CARDS 4 /* Max number of ES3210 cards per module */
#define NAMELEN 8 /* # of chars for storing dev->name */
^ permalink raw reply [flat|nested] 17+ messages in thread
* [patch 07/14] e2100: convert to net_device_ops
2008-11-26 1:14 [patch 00/14] Network devices ops (wave 4) Stephen Hemminger
` (5 preceding siblings ...)
2008-11-26 1:14 ` [patch 06/14] es3210: " Stephen Hemminger
@ 2008-11-26 1:14 ` Stephen Hemminger
2008-11-26 1:14 ` [patch 08/14] lne390: " Stephen Hemminger
` (7 subsequent siblings)
14 siblings, 0 replies; 17+ messages in thread
From: Stephen Hemminger @ 2008-11-26 1:14 UTC (permalink / raw)
To: David Miller; +Cc: netdev
[-- Attachment #1: e2100-netdev.patch --]
[-- Type: text/plain, Size: 1486 bytes --]
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
--- a/drivers/net/e2100.c 2008-11-25 16:23:37.000000000 -0800
+++ b/drivers/net/e2100.c 2008-11-25 16:50:20.000000000 -0800
@@ -107,7 +107,7 @@ static void e21_block_output(struct net_
const unsigned char *buf, int start_page);
static void e21_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr,
int ring_page);
-
+static int e21_open(struct net_device *dev);
static int e21_close(struct net_device *dev);
@@ -160,6 +160,21 @@ out:
}
#endif
+static const struct net_device_ops e21_netdev_ops = {
+ .ndo_open = e21_open,
+ .ndo_stop = e21_close,
+
+ .ndo_start_xmit = ei_start_xmit,
+ .ndo_tx_timeout = ei_tx_timeout,
+ .ndo_get_stats = ei_get_stats,
+ .ndo_set_multicast_list = ei_set_multicast_list,
+ .ndo_validate_addr = eth_validate_addr,
+ .ndo_change_mtu = eth_change_mtu,
+#ifdef CONFIG_NET_POLL_CONTROLLER
+ .ndo_poll_controller = ei_poll,
+#endif
+};
+
static int __init e21_probe1(struct net_device *dev, int ioaddr)
{
int i, status, retval;
@@ -265,11 +280,8 @@ static int __init e21_probe1(struct net_
ei_status.block_input = &e21_block_input;
ei_status.block_output = &e21_block_output;
ei_status.get_8390_hdr = &e21_get_8390_hdr;
- dev->open = &e21_open;
- dev->stop = &e21_close;
-#ifdef CONFIG_NET_POLL_CONTROLLER
- dev->poll_controller = ei_poll;
-#endif
+
+ dev->netdev_ops = &e21_netdev_ops;
NS8390_init(dev, 0);
retval = register_netdev(dev);
^ permalink raw reply [flat|nested] 17+ messages in thread
* [patch 08/14] lne390: convert to net_device_ops
2008-11-26 1:14 [patch 00/14] Network devices ops (wave 4) Stephen Hemminger
` (6 preceding siblings ...)
2008-11-26 1:14 ` [patch 07/14] e2100: " Stephen Hemminger
@ 2008-11-26 1:14 ` Stephen Hemminger
2008-11-26 1:14 ` [patch 09/14] hp: " Stephen Hemminger
` (6 subsequent siblings)
14 siblings, 0 replies; 17+ messages in thread
From: Stephen Hemminger @ 2008-11-26 1:14 UTC (permalink / raw)
To: David Miller; +Cc: netdev
[-- Attachment #1: lne390-netdev.patch --]
[-- Type: text/plain, Size: 1382 bytes --]
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
--- a/drivers/net/lne390.c 2008-11-25 14:45:17.000000000 -0800
+++ b/drivers/net/lne390.c 2008-11-25 14:45:42.000000000 -0800
@@ -53,9 +53,6 @@ static const char *version =
static int lne390_probe1(struct net_device *dev, int ioaddr);
-static int lne390_open(struct net_device *dev);
-static int lne390_close(struct net_device *dev);
-
static void lne390_reset_8390(struct net_device *dev);
static void lne390_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr, int ring_page);
@@ -278,11 +275,7 @@ static int __init lne390_probe1(struct n
ei_status.block_output = &lne390_block_output;
ei_status.get_8390_hdr = &lne390_get_8390_hdr;
- dev->open = &lne390_open;
- dev->stop = &lne390_close;
-#ifdef CONFIG_NET_POLL_CONTROLLER
- dev->poll_controller = ei_poll;
-#endif
+ dev->netdev_ops = &ei_netdev_ops;
NS8390_init(dev, 0);
ret = register_netdev(dev);
@@ -374,21 +367,6 @@ static void lne390_block_output(struct n
memcpy_toio(shmem, buf, count);
}
-static int lne390_open(struct net_device *dev)
-{
- ei_open(dev);
- return 0;
-}
-
-static int lne390_close(struct net_device *dev)
-{
-
- if (ei_debug > 1)
- printk("%s: Shutting down ethercard.\n", dev->name);
-
- ei_close(dev);
- return 0;
-}
#ifdef MODULE
#define MAX_LNE_CARDS 4 /* Max number of LNE390 cards per module */
^ permalink raw reply [flat|nested] 17+ messages in thread
* [patch 09/14] hp: convert to net_device_ops
2008-11-26 1:14 [patch 00/14] Network devices ops (wave 4) Stephen Hemminger
` (7 preceding siblings ...)
2008-11-26 1:14 ` [patch 08/14] lne390: " Stephen Hemminger
@ 2008-11-26 1:14 ` Stephen Hemminger
2008-11-26 1:14 ` [patch 10/14] ne2: " Stephen Hemminger
` (5 subsequent siblings)
14 siblings, 0 replies; 17+ messages in thread
From: Stephen Hemminger @ 2008-11-26 1:14 UTC (permalink / raw)
To: David Miller; +Cc: netdev
[-- Attachment #1: hp-netdev.patch --]
[-- Type: text/plain, Size: 1248 bytes --]
Another old EISA driver converted.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
--- a/drivers/net/hp.c 2008-11-25 14:47:37.000000000 -0800
+++ b/drivers/net/hp.c 2008-11-25 16:47:46.000000000 -0800
@@ -59,8 +59,6 @@ static unsigned int hppclan_portlist[] _
static int hp_probe1(struct net_device *dev, int ioaddr);
-static int hp_open(struct net_device *dev);
-static int hp_close(struct net_device *dev);
static void hp_reset_8390(struct net_device *dev);
static void hp_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr,
int ring_page);
@@ -198,11 +196,7 @@ static int __init hp_probe1(struct net_d
/* Set the base address to point to the NIC, not the "real" base! */
dev->base_addr = ioaddr + NIC_OFFSET;
- dev->open = &hp_open;
- dev->stop = &hp_close;
-#ifdef CONFIG_NET_POLL_CONTROLLER
- dev->poll_controller = eip_poll;
-#endif
+ dev->netdev_ops = &eip_netdev_ops;
ei_status.name = name;
ei_status.word16 = wordmode;
@@ -227,20 +221,6 @@ out:
return retval;
}
-static int
-hp_open(struct net_device *dev)
-{
- eip_open(dev);
- return 0;
-}
-
-static int
-hp_close(struct net_device *dev)
-{
- eip_close(dev);
- return 0;
-}
-
static void
hp_reset_8390(struct net_device *dev)
{
^ permalink raw reply [flat|nested] 17+ messages in thread
* [patch 10/14] ne2: convert to net_device_ops
2008-11-26 1:14 [patch 00/14] Network devices ops (wave 4) Stephen Hemminger
` (8 preceding siblings ...)
2008-11-26 1:14 ` [patch 09/14] hp: " Stephen Hemminger
@ 2008-11-26 1:14 ` Stephen Hemminger
2008-11-26 1:14 ` [patch 11/14] apne: " Stephen Hemminger
` (4 subsequent siblings)
14 siblings, 0 replies; 17+ messages in thread
From: Stephen Hemminger @ 2008-11-26 1:14 UTC (permalink / raw)
To: David Miller; +Cc: netdev
[-- Attachment #1: ne2-netdev_ops.patch --]
[-- Type: text/plain, Size: 990 bytes --]
Almost there.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
--- a/drivers/net/ne2.c 2008-11-25 14:47:37.000000000 -0800
+++ b/drivers/net/ne2.c 2008-11-25 16:46:52.000000000 -0800
@@ -492,11 +492,7 @@ static int __init ne2_probe1(struct net_
ei_status.priv = slot;
- dev->open = &ne_open;
- dev->stop = &ne_close;
-#ifdef CONFIG_NET_POLL_CONTROLLER
- dev->poll_controller = eip_poll;
-#endif
+ dev->netdev_ops = &eip_netdev_ops;
NS8390p_init(dev, 0);
retval = register_netdev(dev);
@@ -511,20 +507,6 @@ out:
return retval;
}
-static int ne_open(struct net_device *dev)
-{
- eip_open(dev);
- return 0;
-}
-
-static int ne_close(struct net_device *dev)
-{
- if (ei_debug > 1)
- printk("%s: Shutting down ethercard.\n", dev->name);
- eip_close(dev);
- return 0;
-}
-
/* Hard reset the card. This used to pause for the same period that a
8390 reset command required, but that shouldn't be necessary. */
static void ne_reset_8390(struct net_device *dev)
^ permalink raw reply [flat|nested] 17+ messages in thread
* [patch 11/14] apne: convert to net_device_ops
2008-11-26 1:14 [patch 00/14] Network devices ops (wave 4) Stephen Hemminger
` (9 preceding siblings ...)
2008-11-26 1:14 ` [patch 10/14] ne2: " Stephen Hemminger
@ 2008-11-26 1:14 ` Stephen Hemminger
2008-11-26 1:14 ` [patch 12/14] stnic: " Stephen Hemminger
` (3 subsequent siblings)
14 siblings, 0 replies; 17+ messages in thread
From: Stephen Hemminger @ 2008-11-26 1:14 UTC (permalink / raw)
To: David Miller; +Cc: netdev
[-- Attachment #1: apne-netdev-ops.patch --]
[-- Type: text/plain, Size: 1815 bytes --]
Yet another driver.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
--- a/drivers/net/apne.c 2008-11-25 14:33:02.000000000 -0800
+++ b/drivers/net/apne.c 2008-11-25 14:34:43.000000000 -0800
@@ -78,9 +78,6 @@
struct net_device * __init apne_probe(int unit);
static int apne_probe1(struct net_device *dev, int ioaddr);
-static int apne_open(struct net_device *dev);
-static int apne_close(struct net_device *dev);
-
static void apne_reset_8390(struct net_device *dev);
static void apne_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr,
int ring_page);
@@ -314,6 +311,7 @@ static int __init apne_probe1(struct net
dev->base_addr = ioaddr;
dev->irq = IRQ_AMIGA_PORTS;
+ dev->netdev_ops = &ei_netdev_ops;
/* Install the Interrupt handler */
i = request_irq(dev->irq, apne_interrupt, IRQF_SHARED, DRV_NAME, dev);
@@ -337,11 +335,7 @@ static int __init apne_probe1(struct net
ei_status.block_input = &apne_block_input;
ei_status.block_output = &apne_block_output;
ei_status.get_8390_hdr = &apne_get_8390_hdr;
- dev->open = &apne_open;
- dev->stop = &apne_close;
-#ifdef CONFIG_NET_POLL_CONTROLLER
- dev->poll_controller = ei_poll;
-#endif
+
NS8390_init(dev, 0);
pcmcia_ack_int(pcmcia_get_intreq()); /* ack PCMCIA int req */
@@ -352,22 +346,6 @@ static int __init apne_probe1(struct net
return 0;
}
-static int
-apne_open(struct net_device *dev)
-{
- ei_open(dev);
- return 0;
-}
-
-static int
-apne_close(struct net_device *dev)
-{
- if (ei_debug > 1)
- printk("%s: Shutting down ethercard.\n", dev->name);
- ei_close(dev);
- return 0;
-}
-
/* Hard reset the card. This used to pause for the same period that a
8390 reset command required, but that shouldn't be necessary. */
static void
^ permalink raw reply [flat|nested] 17+ messages in thread
* [patch 12/14] stnic: convert to net_device_ops
2008-11-26 1:14 [patch 00/14] Network devices ops (wave 4) Stephen Hemminger
` (10 preceding siblings ...)
2008-11-26 1:14 ` [patch 11/14] apne: " Stephen Hemminger
@ 2008-11-26 1:14 ` Stephen Hemminger
2008-11-26 1:14 ` [patch 13/14] 3c503: " Stephen Hemminger
` (2 subsequent siblings)
14 siblings, 0 replies; 17+ messages in thread
From: Stephen Hemminger @ 2008-11-26 1:14 UTC (permalink / raw)
To: David Miller; +Cc: netdev
[-- Attachment #1: stnic-netdev-ops.patch --]
[-- Type: text/plain, Size: 1419 bytes --]
Can just use common ei_netdev_ops definition.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
--- a/drivers/net/stnic.c 2008-11-25 14:33:02.000000000 -0800
+++ b/drivers/net/stnic.c 2008-11-25 14:34:28.000000000 -0800
@@ -60,8 +60,6 @@ static byte stnic_eadr[6] =
static struct net_device *stnic_dev;
-static int stnic_open (struct net_device *dev);
-static int stnic_close (struct net_device *dev);
static void stnic_reset (struct net_device *dev);
static void stnic_get_hdr (struct net_device *dev, struct e8390_pkt_hdr *hdr,
int ring_page);
@@ -122,11 +120,7 @@ static int __init stnic_probe(void)
/* Set the base address to point to the NIC, not the "real" base! */
dev->base_addr = 0x1000;
dev->irq = IRQ_STNIC;
- dev->open = &stnic_open;
- dev->stop = &stnic_close;
-#ifdef CONFIG_NET_POLL_CONTROLLER
- dev->poll_controller = ei_poll;
-#endif
+ dev->netdev_ops = &ei_netdev_ops;
/* Snarf the interrupt now. There's no point in waiting since we cannot
share and the board will usually be enabled. */
@@ -168,23 +162,6 @@ static int __init stnic_probe(void)
return 0;
}
-static int
-stnic_open (struct net_device *dev)
-{
-#if 0
- printk (KERN_DEBUG "stnic open\n");
-#endif
- ei_open (dev);
- return 0;
-}
-
-static int
-stnic_close (struct net_device *dev)
-{
- ei_close (dev);
- return 0;
-}
-
static void
stnic_reset (struct net_device *dev)
{
^ permalink raw reply [flat|nested] 17+ messages in thread
* [patch 13/14] 3c503: convert to net_device_ops
2008-11-26 1:14 [patch 00/14] Network devices ops (wave 4) Stephen Hemminger
` (11 preceding siblings ...)
2008-11-26 1:14 ` [patch 12/14] stnic: " Stephen Hemminger
@ 2008-11-26 1:14 ` Stephen Hemminger
2008-11-26 1:14 ` [patch 14/14] ne2000: " Stephen Hemminger
2008-11-26 5:06 ` [patch 00/14] Network devices ops (wave 4) David Miller
14 siblings, 0 replies; 17+ messages in thread
From: Stephen Hemminger @ 2008-11-26 1:14 UTC (permalink / raw)
To: David Miller; +Cc: netdev
[-- Attachment #1: 3c503-netdev-ops.patch --]
[-- Type: text/plain, Size: 1173 bytes --]
Another of the 8390p group.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
--- a/drivers/net/3c503.c 2008-11-25 14:47:36.000000000 -0800
+++ b/drivers/net/3c503.c 2008-11-25 17:04:58.000000000 -0800
@@ -168,6 +168,21 @@ out:
}
#endif
+static const struct net_device_ops el2_netdev_ops = {
+ .ndo_open = el2_open,
+ .ndo_stop = el2_close,
+
+ .ndo_start_xmit = eip_start_xmit,
+ .ndo_tx_timeout = eip_tx_timeout,
+ .ndo_get_stats = eip_get_stats,
+ .ndo_set_multicast_list = eip_set_multicast_list,
+ .ndo_validate_addr = eth_validate_addr,
+ .ndo_change_mtu = eth_change_mtu,
+#ifdef CONFIG_NET_POLL_CONTROLLER
+ .ndo_poll_controller = eip_poll,
+#endif
+};
+
/* Probe for the Etherlink II card at I/O port base IOADDR,
returning non-zero on success. If found, set the station
address and memory parameters in DEVICE. */
@@ -335,8 +350,7 @@ el2_probe1(struct net_device *dev, int i
ei_status.saved_irq = dev->irq;
- dev->open = &el2_open;
- dev->stop = &el2_close;
+ dev->netdev_ops = &el2_netdev_ops;
dev->ethtool_ops = &netdev_ethtool_ops;
#ifdef CONFIG_NET_POLL_CONTROLLER
dev->poll_controller = eip_poll;
^ permalink raw reply [flat|nested] 17+ messages in thread
* [patch 14/14] ne2000: convert to net_device_ops
2008-11-26 1:14 [patch 00/14] Network devices ops (wave 4) Stephen Hemminger
` (12 preceding siblings ...)
2008-11-26 1:14 ` [patch 13/14] 3c503: " Stephen Hemminger
@ 2008-11-26 1:14 ` Stephen Hemminger
2008-11-26 5:06 ` [patch 00/14] Network devices ops (wave 4) David Miller
14 siblings, 0 replies; 17+ messages in thread
From: Stephen Hemminger @ 2008-11-26 1:14 UTC (permalink / raw)
To: David Miller; +Cc: netdev
[-- Attachment #1: ne2000-netdev-ops.patch --]
[-- Type: text/plain, Size: 1465 bytes --]
Last driver for today.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
--- a/drivers/net/ne.c 2008-11-25 14:47:37.000000000 -0800
+++ b/drivers/net/ne.c 2008-11-25 17:02:06.000000000 -0800
@@ -174,9 +174,6 @@ bad_clone_list[] __initdata = {
static int ne_probe1(struct net_device *dev, unsigned long ioaddr);
static int ne_probe_isapnp(struct net_device *dev);
-static int ne_open(struct net_device *dev);
-static int ne_close(struct net_device *dev);
-
static void ne_reset_8390(struct net_device *dev);
static void ne_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr,
int ring_page);
@@ -536,11 +533,8 @@ static int __init ne_probe1(struct net_d
ei_status.block_output = &ne_block_output;
ei_status.get_8390_hdr = &ne_get_8390_hdr;
ei_status.priv = 0;
- dev->open = &ne_open;
- dev->stop = &ne_close;
-#ifdef CONFIG_NET_POLL_CONTROLLER
- dev->poll_controller = eip_poll;
-#endif
+
+ dev->netdev_ops = &eip_netdev_ops;
NS8390p_init(dev, 0);
ret = register_netdev(dev);
@@ -557,20 +551,6 @@ err_out:
return ret;
}
-static int ne_open(struct net_device *dev)
-{
- eip_open(dev);
- return 0;
-}
-
-static int ne_close(struct net_device *dev)
-{
- if (ei_debug > 1)
- printk(KERN_DEBUG "%s: Shutting down ethercard.\n", dev->name);
- eip_close(dev);
- return 0;
-}
-
/* Hard reset the card. This used to pause for the same period that a
8390 reset command required, but that shouldn't be necessary. */
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [patch 00/14] Network devices ops (wave 4)
2008-11-26 1:14 [patch 00/14] Network devices ops (wave 4) Stephen Hemminger
` (13 preceding siblings ...)
2008-11-26 1:14 ` [patch 14/14] ne2000: " Stephen Hemminger
@ 2008-11-26 5:06 ` David Miller
2008-11-26 9:53 ` David Miller
14 siblings, 1 reply; 17+ messages in thread
From: David Miller @ 2008-11-26 5:06 UTC (permalink / raw)
To: shemminger; +Cc: netdev
From: Stephen Hemminger <shemminger@linux-foundation.org>
Date: Tue, 25 Nov 2008 17:14:19 -0800
> This fixes the build bug for 8390 library based drivers,
> then updates a bunch more drivers. Build tested all the network drivers
> on x86.
All applied thanks Stephen.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [patch 00/14] Network devices ops (wave 4)
2008-11-26 5:06 ` [patch 00/14] Network devices ops (wave 4) David Miller
@ 2008-11-26 9:53 ` David Miller
0 siblings, 0 replies; 17+ messages in thread
From: David Miller @ 2008-11-26 9:53 UTC (permalink / raw)
To: shemminger; +Cc: netdev
From: David Miller <davem@davemloft.net>
Date: Tue, 25 Nov 2008 21:06:58 -0800 (PST)
> From: Stephen Hemminger <shemminger@linux-foundation.org>
> Date: Tue, 25 Nov 2008 17:14:19 -0800
>
> > This fixes the build bug for 8390 library based drivers,
> > then updates a bunch more drivers. Build tested all the network drivers
> > on x86.
>
> All applied thanks Stephen.
Ummm, Stephen, I need to add the following build fix
to the net-next-2.6
Please be more careful next time.
smc-mca: Fix build failure due to typo.
ultra_netdev_ops --> ultramca_netdev_ops
Signed-off-by: David S. Miller <davem@davemloft.net>
---
drivers/net/smc-mca.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/smc-mca.c b/drivers/net/smc-mca.c
index ae5f38d..404b80e 100644
--- a/drivers/net/smc-mca.c
+++ b/drivers/net/smc-mca.c
@@ -183,7 +183,7 @@ static char *smc_mca_adapter_names[] __initdata = {
static int ultra_found = 0;
-static const struct net_device_ops ultra_netdev_ops = {
+static const struct net_device_ops ultramca_netdev_ops = {
.ndo_open = ultramca_open,
.ndo_stop = ultramca_close_card,
--
1.5.6.5
^ permalink raw reply related [flat|nested] 17+ messages in thread
end of thread, other threads:[~2008-11-26 9:53 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-26 1:14 [patch 00/14] Network devices ops (wave 4) Stephen Hemminger
2008-11-26 1:14 ` [patch 01/14] 8390: add common net_device ops Stephen Hemminger
2008-11-26 1:14 ` [patch 02/14] wd: use net_device_ops Stephen Hemminger
2008-11-26 1:14 ` [patch 03/14] hp-plus: convert to net_device_ops Stephen Hemminger
2008-11-26 1:14 ` [patch 04/14] smc: " Stephen Hemminger
2008-11-26 1:14 ` [patch 05/14] ne3210: " Stephen Hemminger
2008-11-26 1:14 ` [patch 06/14] es3210: " Stephen Hemminger
2008-11-26 1:14 ` [patch 07/14] e2100: " Stephen Hemminger
2008-11-26 1:14 ` [patch 08/14] lne390: " Stephen Hemminger
2008-11-26 1:14 ` [patch 09/14] hp: " Stephen Hemminger
2008-11-26 1:14 ` [patch 10/14] ne2: " Stephen Hemminger
2008-11-26 1:14 ` [patch 11/14] apne: " Stephen Hemminger
2008-11-26 1:14 ` [patch 12/14] stnic: " Stephen Hemminger
2008-11-26 1:14 ` [patch 13/14] 3c503: " Stephen Hemminger
2008-11-26 1:14 ` [patch 14/14] ne2000: " Stephen Hemminger
2008-11-26 5:06 ` [patch 00/14] Network devices ops (wave 4) David Miller
2008-11-26 9:53 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).