diff options
author | Stephen Hemminger <shemminger@vyatta.com> | 2008-11-25 21:12:49 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-11-25 21:12:49 -0500 |
commit | 8884c092e5e4f9a1b6e44f2e02a3eb5481af87ab (patch) | |
tree | 3afd7d5b3453aa34ce1f6bb010c3e843ca337b90 /drivers/net/lib8390.c | |
parent | b27aeadb5948d400df83db4d29590fb9862ba49d (diff) |
8390: add common net_device ops
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>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/lib8390.c')
-rw-r--r-- | drivers/net/lib8390.c | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/drivers/net/lib8390.c b/drivers/net/lib8390.c index 46335af12393..1d36ca4dc6b9 100644 --- a/drivers/net/lib8390.c +++ b/drivers/net/lib8390.c | |||
@@ -205,12 +205,6 @@ static int __ei_open(struct net_device *dev) | |||
205 | unsigned long flags; | 205 | unsigned long flags; |
206 | struct ei_device *ei_local = (struct ei_device *) netdev_priv(dev); | 206 | struct ei_device *ei_local = (struct ei_device *) netdev_priv(dev); |
207 | 207 | ||
208 | /* The card I/O part of the driver (e.g. 3c503) can hook a Tx timeout | ||
209 | wrapper that does e.g. media check & then calls ei_tx_timeout. */ | ||
210 | #ifdef CONFIG_COMPAT_NET_DEV_OPS | ||
211 | if (dev->tx_timeout == NULL) | ||
212 | dev->tx_timeout = ei_tx_timeout; | ||
213 | #endif | ||
214 | if (dev->watchdog_timeo <= 0) | 208 | if (dev->watchdog_timeo <= 0) |
215 | dev->watchdog_timeo = TX_TIMEOUT; | 209 | dev->watchdog_timeo = TX_TIMEOUT; |
216 | 210 | ||
@@ -259,7 +253,7 @@ static int __ei_close(struct net_device *dev) | |||
259 | * completed (or failed) - i.e. never posted a Tx related interrupt. | 253 | * completed (or failed) - i.e. never posted a Tx related interrupt. |
260 | */ | 254 | */ |
261 | 255 | ||
262 | void ei_tx_timeout(struct net_device *dev) | 256 | static void __ei_tx_timeout(struct net_device *dev) |
263 | { | 257 | { |
264 | unsigned long e8390_base = dev->base_addr; | 258 | unsigned long e8390_base = dev->base_addr; |
265 | struct ei_device *ei_local = (struct ei_device *) netdev_priv(dev); | 259 | struct ei_device *ei_local = (struct ei_device *) netdev_priv(dev); |
@@ -296,7 +290,6 @@ void ei_tx_timeout(struct net_device *dev) | |||
296 | enable_irq_lockdep(dev->irq); | 290 | enable_irq_lockdep(dev->irq); |
297 | netif_wake_queue(dev); | 291 | netif_wake_queue(dev); |
298 | } | 292 | } |
299 | EXPORT_SYMBOL_GPL(ei_tx_timeout); | ||
300 | 293 | ||
301 | /** | 294 | /** |
302 | * ei_start_xmit - begin packet transmission | 295 | * ei_start_xmit - begin packet transmission |
@@ -306,7 +299,7 @@ EXPORT_SYMBOL_GPL(ei_tx_timeout); | |||
306 | * Sends a packet to an 8390 network device. | 299 | * Sends a packet to an 8390 network device. |
307 | */ | 300 | */ |
308 | 301 | ||
309 | int ei_start_xmit(struct sk_buff *skb, struct net_device *dev) | 302 | static int __ei_start_xmit(struct sk_buff *skb, struct net_device *dev) |
310 | { | 303 | { |
311 | unsigned long e8390_base = dev->base_addr; | 304 | unsigned long e8390_base = dev->base_addr; |
312 | struct ei_device *ei_local = (struct ei_device *) netdev_priv(dev); | 305 | struct ei_device *ei_local = (struct ei_device *) netdev_priv(dev); |
@@ -423,7 +416,6 @@ int ei_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
423 | 416 | ||
424 | return 0; | 417 | return 0; |
425 | } | 418 | } |
426 | EXPORT_SYMBOL_GPL(ei_start_xmit); | ||
427 | 419 | ||
428 | /** | 420 | /** |
429 | * ei_interrupt - handle the interrupts from an 8390 | 421 | * ei_interrupt - handle the interrupts from an 8390 |
@@ -885,7 +877,7 @@ static void ei_rx_overrun(struct net_device *dev) | |||
885 | * Collect the stats. This is called unlocked and from several contexts. | 877 | * Collect the stats. This is called unlocked and from several contexts. |
886 | */ | 878 | */ |
887 | 879 | ||
888 | struct net_device_stats *ei_get_stats(struct net_device *dev) | 880 | static struct net_device_stats *__ei_get_stats(struct net_device *dev) |
889 | { | 881 | { |
890 | unsigned long ioaddr = dev->base_addr; | 882 | unsigned long ioaddr = dev->base_addr; |
891 | struct ei_device *ei_local = (struct ei_device *) netdev_priv(dev); | 883 | struct ei_device *ei_local = (struct ei_device *) netdev_priv(dev); |
@@ -904,7 +896,6 @@ struct net_device_stats *ei_get_stats(struct net_device *dev) | |||
904 | 896 | ||
905 | return &dev->stats; | 897 | return &dev->stats; |
906 | } | 898 | } |
907 | EXPORT_SYMBOL_GPL(ei_get_stats); | ||
908 | 899 | ||
909 | /* | 900 | /* |
910 | * Form the 64 bit 8390 multicast table from the linked list of addresses | 901 | * Form the 64 bit 8390 multicast table from the linked list of addresses |
@@ -995,7 +986,7 @@ static void do_set_multicast_list(struct net_device *dev) | |||
995 | * not called too often. Must protect against both bh and irq users | 986 | * not called too often. Must protect against both bh and irq users |
996 | */ | 987 | */ |
997 | 988 | ||
998 | void ei_set_multicast_list(struct net_device *dev) | 989 | static void __ei_set_multicast_list(struct net_device *dev) |
999 | { | 990 | { |
1000 | unsigned long flags; | 991 | unsigned long flags; |
1001 | struct ei_device *ei_local = (struct ei_device*)netdev_priv(dev); | 992 | struct ei_device *ei_local = (struct ei_device*)netdev_priv(dev); |
@@ -1004,7 +995,6 @@ void ei_set_multicast_list(struct net_device *dev) | |||
1004 | do_set_multicast_list(dev); | 995 | do_set_multicast_list(dev); |
1005 | spin_unlock_irqrestore(&ei_local->page_lock, flags); | 996 | spin_unlock_irqrestore(&ei_local->page_lock, flags); |
1006 | } | 997 | } |
1007 | EXPORT_SYMBOL_GPL(ei_set_multicast_list); | ||
1008 | 998 | ||
1009 | /** | 999 | /** |
1010 | * ethdev_setup - init rest of 8390 device struct | 1000 | * ethdev_setup - init rest of 8390 device struct |
@@ -1024,6 +1014,7 @@ static void ethdev_setup(struct net_device *dev) | |||
1024 | dev->hard_start_xmit = ei_start_xmit; | 1014 | dev->hard_start_xmit = ei_start_xmit; |
1025 | dev->get_stats = ei_get_stats; | 1015 | dev->get_stats = ei_get_stats; |
1026 | dev->set_multicast_list = ei_set_multicast_list; | 1016 | dev->set_multicast_list = ei_set_multicast_list; |
1017 | dev->tx_timeout = __ei_tx_timeout; | ||
1027 | #endif | 1018 | #endif |
1028 | ether_setup(dev); | 1019 | ether_setup(dev); |
1029 | 1020 | ||