aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@vyatta.com>2009-08-31 15:50:58 -0400
committerDavid S. Miller <davem@davemloft.net>2009-09-01 04:14:07 -0400
commit61357325f377889a1daffa14962d705dc814dd0e (patch)
tree7b436f1097abbc5681de6d1e5901f62963b42220 /drivers/net
parentd0cf9c0dadcdc89a755bcb301cfc9c796eb28ccf (diff)
netdev: convert bulk of drivers to netdev_tx_t
In a couple of cases collapse some extra code like: int retval = NETDEV_TX_OK; ... return retval; into return NETDEV_TX_OK; Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/8139cp.c3
-rw-r--r--drivers/net/8139too.c7
-rw-r--r--drivers/net/82596.c5
-rw-r--r--drivers/net/8390.c2
-rw-r--r--drivers/net/8390.h4
-rw-r--r--drivers/net/8390p.c2
-rw-r--r--drivers/net/a2065.c3
-rw-r--r--drivers/net/acenic.c3
-rw-r--r--drivers/net/acenic.h3
-rw-r--r--drivers/net/amd8111e.c3
-rw-r--r--drivers/net/arcnet/arcnet.c3
-rw-r--r--drivers/net/ariadne.c6
-rw-r--r--drivers/net/at1700.c6
-rw-r--r--drivers/net/atl1c/atl1c_main.c3
-rw-r--r--drivers/net/atl1e/atl1e_main.c3
-rw-r--r--drivers/net/atlx/atl1.c3
-rw-r--r--drivers/net/atlx/atl2.c3
-rw-r--r--drivers/net/atp.c6
-rw-r--r--drivers/net/au1000_eth.c2
-rw-r--r--drivers/net/b44.c2
-rw-r--r--drivers/net/benet/be_main.c3
-rw-r--r--drivers/net/bnx2.c2
-rw-r--r--drivers/net/bnx2x_main.c2
-rw-r--r--drivers/net/can/sja1000/sja1000.c3
-rw-r--r--drivers/net/cassini.c2
-rw-r--r--drivers/net/chelsio/sge.c2
-rw-r--r--drivers/net/chelsio/sge.h2
-rw-r--r--drivers/net/cs89x0.c4
-rw-r--r--drivers/net/cxgb3/adapter.h2
-rw-r--r--drivers/net/cxgb3/sge.c2
-rw-r--r--drivers/net/defxx.c10
-rw-r--r--drivers/net/depca.c6
-rw-r--r--drivers/net/dl2k.c4
-rw-r--r--drivers/net/dnet.c2
-rw-r--r--drivers/net/eepro.c6
-rw-r--r--drivers/net/eexpress.c5
-rw-r--r--drivers/net/enc28j60.c3
-rw-r--r--drivers/net/enic/enic_main.c3
-rw-r--r--drivers/net/epic100.c5
-rw-r--r--drivers/net/eth16i.c4
-rw-r--r--drivers/net/ethoc.c2
-rw-r--r--drivers/net/ewrk3.c4
-rw-r--r--drivers/net/fealnx.c4
-rw-r--r--drivers/net/forcedeth.c5
-rw-r--r--drivers/net/hamachi.c6
-rw-r--r--drivers/net/hp100.c13
-rw-r--r--drivers/net/ibmlana.c2
-rw-r--r--drivers/net/ibmveth.c3
-rw-r--r--drivers/net/ipg.c3
-rw-r--r--drivers/net/jme.c2
-rw-r--r--drivers/net/ks8842.c3
-rw-r--r--drivers/net/ks8851.c5
-rw-r--r--drivers/net/lance.c6
-rw-r--r--drivers/net/lib8390.c3
-rw-r--r--drivers/net/loopback.c3
-rw-r--r--drivers/net/lp486e.c4
-rw-r--r--drivers/net/mlx4/en_tx.c2
-rw-r--r--drivers/net/mlx4/mlx4_en.h2
-rw-r--r--drivers/net/myri10ge/myri10ge.c11
-rw-r--r--drivers/net/natsemi.c4
-rw-r--r--drivers/net/netxen/netxen_nic_main.c5
-rw-r--r--drivers/net/ni52.c5
-rw-r--r--drivers/net/ni65.c6
-rw-r--r--drivers/net/niu.c3
-rw-r--r--drivers/net/ns83820.c3
-rw-r--r--drivers/net/pcnet32.c6
-rw-r--r--drivers/net/qla3xxx.c3
-rw-r--r--drivers/net/qlge/qlge_main.c2
-rw-r--r--drivers/net/r6040.c10
-rw-r--r--drivers/net/r8169.c12
-rw-r--r--drivers/net/rrunner.c3
-rw-r--r--drivers/net/rrunner.h3
-rw-r--r--drivers/net/s2io.c2
-rw-r--r--drivers/net/sb1000.c5
-rw-r--r--drivers/net/sc92031.c3
-rw-r--r--drivers/net/seeq8005.c6
-rw-r--r--drivers/net/sfc/efx.h5
-rw-r--r--drivers/net/sfc/selftest.c3
-rw-r--r--drivers/net/sfc/tx.c18
-rw-r--r--drivers/net/sfc/tx.h3
-rw-r--r--drivers/net/sis190.c3
-rw-r--r--drivers/net/sis900.c5
-rw-r--r--drivers/net/skfp/skfddi.c6
-rw-r--r--drivers/net/skge.c3
-rw-r--r--drivers/net/sky2.c3
-rw-r--r--drivers/net/smc9194.c6
-rw-r--r--drivers/net/smsc9420.c3
-rw-r--r--drivers/net/starfire.c4
-rw-r--r--drivers/net/sundance.c4
-rw-r--r--drivers/net/sungem.c3
-rw-r--r--drivers/net/sunhme.c3
-rw-r--r--drivers/net/tehuti.c3
-rw-r--r--drivers/net/tg3.c9
-rw-r--r--drivers/net/tlan.c4
-rw-r--r--drivers/net/typhoon.c2
-rw-r--r--drivers/net/via-rhine.c6
-rw-r--r--drivers/net/via-velocity.c3
-rw-r--r--drivers/net/vxge/vxge-main.c2
-rw-r--r--drivers/net/yellowfin.c6
-rw-r--r--drivers/net/znet.c5
100 files changed, 249 insertions, 171 deletions
diff --git a/drivers/net/8139cp.c b/drivers/net/8139cp.c
index 4a8995aaeca3..462d9f59c53a 100644
--- a/drivers/net/8139cp.c
+++ b/drivers/net/8139cp.c
@@ -736,7 +736,8 @@ static void cp_tx (struct cp_private *cp)
736 netif_wake_queue(cp->dev); 736 netif_wake_queue(cp->dev);
737} 737}
738 738
739static int cp_start_xmit (struct sk_buff *skb, struct net_device *dev) 739static netdev_tx_t cp_start_xmit (struct sk_buff *skb,
740 struct net_device *dev)
740{ 741{
741 struct cp_private *cp = netdev_priv(dev); 742 struct cp_private *cp = netdev_priv(dev);
742 unsigned entry; 743 unsigned entry;
diff --git a/drivers/net/8139too.c b/drivers/net/8139too.c
index b39ec98345ea..4a3628755026 100644
--- a/drivers/net/8139too.c
+++ b/drivers/net/8139too.c
@@ -628,8 +628,8 @@ static void mdio_write (struct net_device *dev, int phy_id, int location,
628static void rtl8139_start_thread(struct rtl8139_private *tp); 628static void rtl8139_start_thread(struct rtl8139_private *tp);
629static void rtl8139_tx_timeout (struct net_device *dev); 629static void rtl8139_tx_timeout (struct net_device *dev);
630static void rtl8139_init_ring (struct net_device *dev); 630static void rtl8139_init_ring (struct net_device *dev);
631static int rtl8139_start_xmit (struct sk_buff *skb, 631static netdev_tx_t rtl8139_start_xmit (struct sk_buff *skb,
632 struct net_device *dev); 632 struct net_device *dev);
633#ifdef CONFIG_NET_POLL_CONTROLLER 633#ifdef CONFIG_NET_POLL_CONTROLLER
634static void rtl8139_poll_controller(struct net_device *dev); 634static void rtl8139_poll_controller(struct net_device *dev);
635#endif 635#endif
@@ -1687,7 +1687,8 @@ static void rtl8139_tx_timeout (struct net_device *dev)
1687 } 1687 }
1688} 1688}
1689 1689
1690static int rtl8139_start_xmit (struct sk_buff *skb, struct net_device *dev) 1690static netdev_tx_t rtl8139_start_xmit (struct sk_buff *skb,
1691 struct net_device *dev)
1691{ 1692{
1692 struct rtl8139_private *tp = netdev_priv(dev); 1693 struct rtl8139_private *tp = netdev_priv(dev);
1693 void __iomem *ioaddr = tp->mmio_addr; 1694 void __iomem *ioaddr = tp->mmio_addr;
diff --git a/drivers/net/82596.c b/drivers/net/82596.c
index 996cc9102215..ea6b139b812c 100644
--- a/drivers/net/82596.c
+++ b/drivers/net/82596.c
@@ -356,7 +356,7 @@ static char init_setup[] =
356 0x7f /* *multi IA */ }; 356 0x7f /* *multi IA */ };
357 357
358static int i596_open(struct net_device *dev); 358static int i596_open(struct net_device *dev);
359static int i596_start_xmit(struct sk_buff *skb, struct net_device *dev); 359static netdev_tx_t i596_start_xmit(struct sk_buff *skb, struct net_device *dev);
360static irqreturn_t i596_interrupt(int irq, void *dev_id); 360static irqreturn_t i596_interrupt(int irq, void *dev_id);
361static int i596_close(struct net_device *dev); 361static int i596_close(struct net_device *dev);
362static void i596_add_cmd(struct net_device *dev, struct i596_cmd *cmd); 362static void i596_add_cmd(struct net_device *dev, struct i596_cmd *cmd);
@@ -1054,8 +1054,7 @@ static void i596_tx_timeout (struct net_device *dev)
1054 netif_wake_queue (dev); 1054 netif_wake_queue (dev);
1055} 1055}
1056 1056
1057 1057static netdev_tx_t i596_start_xmit(struct sk_buff *skb, struct net_device *dev)
1058static int i596_start_xmit(struct sk_buff *skb, struct net_device *dev)
1059{ 1058{
1060 struct i596_private *lp = dev->ml_priv; 1059 struct i596_private *lp = dev->ml_priv;
1061 struct tx_cmd *tx_cmd; 1060 struct tx_cmd *tx_cmd;
diff --git a/drivers/net/8390.c b/drivers/net/8390.c
index 21153dea8ebe..7c7518be1756 100644
--- a/drivers/net/8390.c
+++ b/drivers/net/8390.c
@@ -17,7 +17,7 @@ int ei_close(struct net_device *dev)
17} 17}
18EXPORT_SYMBOL(ei_close); 18EXPORT_SYMBOL(ei_close);
19 19
20int ei_start_xmit(struct sk_buff *skb, struct net_device *dev) 20netdev_tx_t ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
21{ 21{
22 return __ei_start_xmit(skb, dev); 22 return __ei_start_xmit(skb, dev);
23} 23}
diff --git a/drivers/net/8390.h b/drivers/net/8390.h
index 3c61d6d2748a..3d9e8fb4fbee 100644
--- a/drivers/net/8390.h
+++ b/drivers/net/8390.h
@@ -40,7 +40,7 @@ extern int ei_open(struct net_device *dev);
40extern int ei_close(struct net_device *dev); 40extern int ei_close(struct net_device *dev);
41extern irqreturn_t ei_interrupt(int irq, void *dev_id); 41extern irqreturn_t ei_interrupt(int irq, void *dev_id);
42extern void ei_tx_timeout(struct net_device *dev); 42extern void ei_tx_timeout(struct net_device *dev);
43extern int ei_start_xmit(struct sk_buff *skb, struct net_device *dev); 43extern netdev_tx_t ei_start_xmit(struct sk_buff *skb, struct net_device *dev);
44extern void ei_set_multicast_list(struct net_device *dev); 44extern void ei_set_multicast_list(struct net_device *dev);
45extern struct net_device_stats *ei_get_stats(struct net_device *dev); 45extern struct net_device_stats *ei_get_stats(struct net_device *dev);
46 46
@@ -58,7 +58,7 @@ extern int eip_open(struct net_device *dev);
58extern int eip_close(struct net_device *dev); 58extern int eip_close(struct net_device *dev);
59extern irqreturn_t eip_interrupt(int irq, void *dev_id); 59extern irqreturn_t eip_interrupt(int irq, void *dev_id);
60extern void eip_tx_timeout(struct net_device *dev); 60extern void eip_tx_timeout(struct net_device *dev);
61extern int eip_start_xmit(struct sk_buff *skb, struct net_device *dev); 61extern netdev_tx_t eip_start_xmit(struct sk_buff *skb, struct net_device *dev);
62extern void eip_set_multicast_list(struct net_device *dev); 62extern void eip_set_multicast_list(struct net_device *dev);
63extern struct net_device_stats *eip_get_stats(struct net_device *dev); 63extern struct net_device_stats *eip_get_stats(struct net_device *dev);
64 64
diff --git a/drivers/net/8390p.c b/drivers/net/8390p.c
index d225c291fd93..a2a64ea0b691 100644
--- a/drivers/net/8390p.c
+++ b/drivers/net/8390p.c
@@ -22,7 +22,7 @@ int eip_close(struct net_device *dev)
22} 22}
23EXPORT_SYMBOL(eip_close); 23EXPORT_SYMBOL(eip_close);
24 24
25int eip_start_xmit(struct sk_buff *skb, struct net_device *dev) 25netdev_tx_t eip_start_xmit(struct sk_buff *skb, struct net_device *dev)
26{ 26{
27 return __ei_start_xmit(skb, dev); 27 return __ei_start_xmit(skb, dev);
28} 28}
diff --git a/drivers/net/a2065.c b/drivers/net/a2065.c
index 174a81187a95..b7ec0368d7e8 100644
--- a/drivers/net/a2065.c
+++ b/drivers/net/a2065.c
@@ -547,7 +547,8 @@ static void lance_tx_timeout(struct net_device *dev)
547 netif_wake_queue(dev); 547 netif_wake_queue(dev);
548} 548}
549 549
550static int lance_start_xmit (struct sk_buff *skb, struct net_device *dev) 550static netdev_tx_t lance_start_xmit (struct sk_buff *skb,
551 struct net_device *dev)
551{ 552{
552 struct lance_private *lp = netdev_priv(dev); 553 struct lance_private *lp = netdev_priv(dev);
553 volatile struct lance_regs *ll = lp->ll; 554 volatile struct lance_regs *ll = lp->ll;
diff --git a/drivers/net/acenic.c b/drivers/net/acenic.c
index 08419ee10290..5f0b05c2d71f 100644
--- a/drivers/net/acenic.c
+++ b/drivers/net/acenic.c
@@ -2464,7 +2464,8 @@ ace_load_tx_bd(struct ace_private *ap, struct tx_desc *desc, u64 addr,
2464} 2464}
2465 2465
2466 2466
2467static int ace_start_xmit(struct sk_buff *skb, struct net_device *dev) 2467static netdev_tx_t ace_start_xmit(struct sk_buff *skb,
2468 struct net_device *dev)
2468{ 2469{
2469 struct ace_private *ap = netdev_priv(dev); 2470 struct ace_private *ap = netdev_priv(dev);
2470 struct ace_regs __iomem *regs = ap->regs; 2471 struct ace_regs __iomem *regs = ap->regs;
diff --git a/drivers/net/acenic.h b/drivers/net/acenic.h
index c987c9b5a137..17079b927ffa 100644
--- a/drivers/net/acenic.h
+++ b/drivers/net/acenic.h
@@ -775,7 +775,8 @@ static void ace_load_jumbo_rx_ring(struct ace_private *ap, int nr_bufs);
775static irqreturn_t ace_interrupt(int irq, void *dev_id); 775static irqreturn_t ace_interrupt(int irq, void *dev_id);
776static int ace_load_firmware(struct net_device *dev); 776static int ace_load_firmware(struct net_device *dev);
777static int ace_open(struct net_device *dev); 777static int ace_open(struct net_device *dev);
778static int ace_start_xmit(struct sk_buff *skb, struct net_device *dev); 778static netdev_tx_t ace_start_xmit(struct sk_buff *skb,
779 struct net_device *dev);
779static int ace_close(struct net_device *dev); 780static int ace_close(struct net_device *dev);
780static void ace_tasklet(unsigned long dev); 781static void ace_tasklet(unsigned long dev);
781static void ace_dump_trace(struct ace_private *ap); 782static void ace_dump_trace(struct ace_private *ap);
diff --git a/drivers/net/amd8111e.c b/drivers/net/amd8111e.c
index 61ac671f97bf..98b5f462c092 100644
--- a/drivers/net/amd8111e.c
+++ b/drivers/net/amd8111e.c
@@ -1300,7 +1300,8 @@ static int amd8111e_tx_queue_avail(struct amd8111e_priv* lp )
1300This function will queue the transmit packets to the descriptors and will trigger the send operation. It also initializes the transmit descriptors with buffer physical address, byte count, ownership to hardware etc. 1300This function will queue the transmit packets to the descriptors and will trigger the send operation. It also initializes the transmit descriptors with buffer physical address, byte count, ownership to hardware etc.
1301*/ 1301*/
1302 1302
1303static int amd8111e_start_xmit(struct sk_buff *skb, struct net_device * dev) 1303static netdev_tx_t amd8111e_start_xmit(struct sk_buff *skb,
1304 struct net_device * dev)
1304{ 1305{
1305 struct amd8111e_priv *lp = netdev_priv(dev); 1306 struct amd8111e_priv *lp = netdev_priv(dev);
1306 int tx_index; 1307 int tx_index;
diff --git a/drivers/net/arcnet/arcnet.c b/drivers/net/arcnet/arcnet.c
index 7d227cdab9f8..75a572560909 100644
--- a/drivers/net/arcnet/arcnet.c
+++ b/drivers/net/arcnet/arcnet.c
@@ -591,7 +591,8 @@ static int arcnet_rebuild_header(struct sk_buff *skb)
591 591
592 592
593/* Called by the kernel in order to transmit a packet. */ 593/* Called by the kernel in order to transmit a packet. */
594int arcnet_send_packet(struct sk_buff *skb, struct net_device *dev) 594netdev_tx_t arcnet_send_packet(struct sk_buff *skb,
595 struct net_device *dev)
595{ 596{
596 struct arcnet_local *lp = netdev_priv(dev); 597 struct arcnet_local *lp = netdev_priv(dev);
597 struct archdr *pkt; 598 struct archdr *pkt;
diff --git a/drivers/net/ariadne.c b/drivers/net/ariadne.c
index 47d976cc3d7d..c35af3e106b1 100644
--- a/drivers/net/ariadne.c
+++ b/drivers/net/ariadne.c
@@ -115,7 +115,8 @@ struct lancedata {
115 115
116static int ariadne_open(struct net_device *dev); 116static int ariadne_open(struct net_device *dev);
117static void ariadne_init_ring(struct net_device *dev); 117static void ariadne_init_ring(struct net_device *dev);
118static int ariadne_start_xmit(struct sk_buff *skb, struct net_device *dev); 118static netdev_tx_t ariadne_start_xmit(struct sk_buff *skb,
119 struct net_device *dev);
119static void ariadne_tx_timeout(struct net_device *dev); 120static void ariadne_tx_timeout(struct net_device *dev);
120static int ariadne_rx(struct net_device *dev); 121static int ariadne_rx(struct net_device *dev);
121static void ariadne_reset(struct net_device *dev); 122static void ariadne_reset(struct net_device *dev);
@@ -589,7 +590,8 @@ static void ariadne_tx_timeout(struct net_device *dev)
589} 590}
590 591
591 592
592static int ariadne_start_xmit(struct sk_buff *skb, struct net_device *dev) 593static netdev_tx_t ariadne_start_xmit(struct sk_buff *skb,
594 struct net_device *dev)
593{ 595{
594 struct ariadne_private *priv = netdev_priv(dev); 596 struct ariadne_private *priv = netdev_priv(dev);
595 volatile struct Am79C960 *lance = (struct Am79C960*)dev->base_addr; 597 volatile struct Am79C960 *lance = (struct Am79C960*)dev->base_addr;
diff --git a/drivers/net/at1700.c b/drivers/net/at1700.c
index 5349c58d1fae..544d5af6950e 100644
--- a/drivers/net/at1700.c
+++ b/drivers/net/at1700.c
@@ -159,7 +159,8 @@ struct net_local {
159static int at1700_probe1(struct net_device *dev, int ioaddr); 159static int at1700_probe1(struct net_device *dev, int ioaddr);
160static int read_eeprom(long ioaddr, int location); 160static int read_eeprom(long ioaddr, int location);
161static int net_open(struct net_device *dev); 161static int net_open(struct net_device *dev);
162static int net_send_packet(struct sk_buff *skb, struct net_device *dev); 162static netdev_tx_t net_send_packet(struct sk_buff *skb,
163 struct net_device *dev);
163static irqreturn_t net_interrupt(int irq, void *dev_id); 164static irqreturn_t net_interrupt(int irq, void *dev_id);
164static void net_rx(struct net_device *dev); 165static void net_rx(struct net_device *dev);
165static int net_close(struct net_device *dev); 166static int net_close(struct net_device *dev);
@@ -595,7 +596,8 @@ static void net_tx_timeout (struct net_device *dev)
595} 596}
596 597
597 598
598static int net_send_packet (struct sk_buff *skb, struct net_device *dev) 599static netdev_tx_t net_send_packet (struct sk_buff *skb,
600 struct net_device *dev)
599{ 601{
600 struct net_local *lp = netdev_priv(dev); 602 struct net_local *lp = netdev_priv(dev);
601 int ioaddr = dev->base_addr; 603 int ioaddr = dev->base_addr;
diff --git a/drivers/net/atl1c/atl1c_main.c b/drivers/net/atl1c/atl1c_main.c
index 1d601ce7d5b2..bf7cc83e9836 100644
--- a/drivers/net/atl1c/atl1c_main.c
+++ b/drivers/net/atl1c/atl1c_main.c
@@ -2055,7 +2055,8 @@ static void atl1c_tx_queue(struct atl1c_adapter *adapter, struct sk_buff *skb,
2055 AT_WRITE_REG(&adapter->hw, REG_MB_PRIO_PROD_IDX, prod_data); 2055 AT_WRITE_REG(&adapter->hw, REG_MB_PRIO_PROD_IDX, prod_data);
2056} 2056}
2057 2057
2058static int atl1c_xmit_frame(struct sk_buff *skb, struct net_device *netdev) 2058static netdev_tx_t atl1c_xmit_frame(struct sk_buff *skb,
2059 struct net_device *netdev)
2059{ 2060{
2060 struct atl1c_adapter *adapter = netdev_priv(netdev); 2061 struct atl1c_adapter *adapter = netdev_priv(netdev);
2061 unsigned long flags; 2062 unsigned long flags;
diff --git a/drivers/net/atl1e/atl1e_main.c b/drivers/net/atl1e/atl1e_main.c
index 4570749e3d3b..bca127e65f95 100644
--- a/drivers/net/atl1e/atl1e_main.c
+++ b/drivers/net/atl1e/atl1e_main.c
@@ -1839,7 +1839,8 @@ static void atl1e_tx_queue(struct atl1e_adapter *adapter, u16 count,
1839 AT_WRITE_REG(&adapter->hw, REG_MB_TPD_PROD_IDX, tx_ring->next_to_use); 1839 AT_WRITE_REG(&adapter->hw, REG_MB_TPD_PROD_IDX, tx_ring->next_to_use);
1840} 1840}
1841 1841
1842static int atl1e_xmit_frame(struct sk_buff *skb, struct net_device *netdev) 1842static netdev_tx_t atl1e_xmit_frame(struct sk_buff *skb,
1843 struct net_device *netdev)
1843{ 1844{
1844 struct atl1e_adapter *adapter = netdev_priv(netdev); 1845 struct atl1e_adapter *adapter = netdev_priv(netdev);
1845 unsigned long flags; 1846 unsigned long flags;
diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c
index 8bca12f71390..00569dc1313c 100644
--- a/drivers/net/atlx/atl1.c
+++ b/drivers/net/atlx/atl1.c
@@ -2349,7 +2349,8 @@ static void atl1_tx_queue(struct atl1_adapter *adapter, u16 count,
2349 atomic_set(&tpd_ring->next_to_use, next_to_use); 2349 atomic_set(&tpd_ring->next_to_use, next_to_use);
2350} 2350}
2351 2351
2352static int atl1_xmit_frame(struct sk_buff *skb, struct net_device *netdev) 2352static netdev_tx_t atl1_xmit_frame(struct sk_buff *skb,
2353 struct net_device *netdev)
2353{ 2354{
2354 struct atl1_adapter *adapter = netdev_priv(netdev); 2355 struct atl1_adapter *adapter = netdev_priv(netdev);
2355 struct atl1_tpd_ring *tpd_ring = &adapter->tpd_ring; 2356 struct atl1_tpd_ring *tpd_ring = &adapter->tpd_ring;
diff --git a/drivers/net/atlx/atl2.c b/drivers/net/atlx/atl2.c
index 204db961029e..d0bcb572d51e 100644
--- a/drivers/net/atlx/atl2.c
+++ b/drivers/net/atlx/atl2.c
@@ -821,7 +821,8 @@ static inline int TxdFreeBytes(struct atl2_adapter *adapter)
821 (int) (txd_read_ptr - adapter->txd_write_ptr - 1); 821 (int) (txd_read_ptr - adapter->txd_write_ptr - 1);
822} 822}
823 823
824static int atl2_xmit_frame(struct sk_buff *skb, struct net_device *netdev) 824static netdev_tx_t atl2_xmit_frame(struct sk_buff *skb,
825 struct net_device *netdev)
825{ 826{
826 struct atl2_adapter *adapter = netdev_priv(netdev); 827 struct atl2_adapter *adapter = netdev_priv(netdev);
827 struct tx_pkt_header *txph; 828 struct tx_pkt_header *txph;
diff --git a/drivers/net/atp.c b/drivers/net/atp.c
index 4beacc9c909f..9043294fe617 100644
--- a/drivers/net/atp.c
+++ b/drivers/net/atp.c
@@ -199,7 +199,8 @@ static int net_open(struct net_device *dev);
199static void hardware_init(struct net_device *dev); 199static void hardware_init(struct net_device *dev);
200static void write_packet(long ioaddr, int length, unsigned char *packet, int pad, int mode); 200static void write_packet(long ioaddr, int length, unsigned char *packet, int pad, int mode);
201static void trigger_send(long ioaddr, int length); 201static void trigger_send(long ioaddr, int length);
202static int atp_send_packet(struct sk_buff *skb, struct net_device *dev); 202static netdev_tx_t atp_send_packet(struct sk_buff *skb,
203 struct net_device *dev);
203static irqreturn_t atp_interrupt(int irq, void *dev_id); 204static irqreturn_t atp_interrupt(int irq, void *dev_id);
204static void net_rx(struct net_device *dev); 205static void net_rx(struct net_device *dev);
205static void read_block(long ioaddr, int length, unsigned char *buffer, int data_mode); 206static void read_block(long ioaddr, int length, unsigned char *buffer, int data_mode);
@@ -552,7 +553,8 @@ static void tx_timeout(struct net_device *dev)
552 dev->stats.tx_errors++; 553 dev->stats.tx_errors++;
553} 554}
554 555
555static int atp_send_packet(struct sk_buff *skb, struct net_device *dev) 556static netdev_tx_t atp_send_packet(struct sk_buff *skb,
557 struct net_device *dev)
556{ 558{
557 struct net_local *lp = netdev_priv(dev); 559 struct net_local *lp = netdev_priv(dev);
558 long ioaddr = dev->base_addr; 560 long ioaddr = dev->base_addr;
diff --git a/drivers/net/au1000_eth.c b/drivers/net/au1000_eth.c
index 2aab1ebc6cd1..407fd45f56a1 100644
--- a/drivers/net/au1000_eth.c
+++ b/drivers/net/au1000_eth.c
@@ -937,7 +937,7 @@ static int au1000_close(struct net_device *dev)
937/* 937/*
938 * Au1000 transmit routine. 938 * Au1000 transmit routine.
939 */ 939 */
940static int au1000_tx(struct sk_buff *skb, struct net_device *dev) 940static netdev_tx_t au1000_tx(struct sk_buff *skb, struct net_device *dev)
941{ 941{
942 struct au1000_private *aup = netdev_priv(dev); 942 struct au1000_private *aup = netdev_priv(dev);
943 struct net_device_stats *ps = &dev->stats; 943 struct net_device_stats *ps = &dev->stats;
diff --git a/drivers/net/b44.c b/drivers/net/b44.c
index 07c92f34d8d8..bee510177a3f 100644
--- a/drivers/net/b44.c
+++ b/drivers/net/b44.c
@@ -946,7 +946,7 @@ static void b44_tx_timeout(struct net_device *dev)
946 netif_wake_queue(dev); 946 netif_wake_queue(dev);
947} 947}
948 948
949static int b44_start_xmit(struct sk_buff *skb, struct net_device *dev) 949static netdev_tx_t b44_start_xmit(struct sk_buff *skb, struct net_device *dev)
950{ 950{
951 struct b44 *bp = netdev_priv(dev); 951 struct b44 *bp = netdev_priv(dev);
952 int rc = NETDEV_TX_OK; 952 int rc = NETDEV_TX_OK;
diff --git a/drivers/net/benet/be_main.c b/drivers/net/benet/be_main.c
index 7b9efee890f8..e19fe1dcd144 100644
--- a/drivers/net/benet/be_main.c
+++ b/drivers/net/benet/be_main.c
@@ -427,7 +427,8 @@ static int make_tx_wrbs(struct be_adapter *adapter,
427 return copied; 427 return copied;
428} 428}
429 429
430static int be_xmit(struct sk_buff *skb, struct net_device *netdev) 430static netdev_tx_t be_xmit(struct sk_buff *skb,
431 struct net_device *netdev)
431{ 432{
432 struct be_adapter *adapter = netdev_priv(netdev); 433 struct be_adapter *adapter = netdev_priv(netdev);
433 struct be_tx_obj *tx_obj = &adapter->tx_obj; 434 struct be_tx_obj *tx_obj = &adapter->tx_obj;
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index c4e85f694272..fcaf3bc8277e 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -6283,7 +6283,7 @@ bnx2_vlan_rx_register(struct net_device *dev, struct vlan_group *vlgrp)
6283 * bnx2_tx_int() runs without netif_tx_lock unless it needs to call 6283 * bnx2_tx_int() runs without netif_tx_lock unless it needs to call
6284 * netif_wake_queue(). 6284 * netif_wake_queue().
6285 */ 6285 */
6286static int 6286static netdev_tx_t
6287bnx2_start_xmit(struct sk_buff *skb, struct net_device *dev) 6287bnx2_start_xmit(struct sk_buff *skb, struct net_device *dev)
6288{ 6288{
6289 struct bnx2 *bp = netdev_priv(dev); 6289 struct bnx2 *bp = netdev_priv(dev);
diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c
index b318d16a4d91..e2e50267cc64 100644
--- a/drivers/net/bnx2x_main.c
+++ b/drivers/net/bnx2x_main.c
@@ -10936,7 +10936,7 @@ exit_lbl:
10936 * bnx2x_tx_int() runs without netif_tx_lock unless it needs to call 10936 * bnx2x_tx_int() runs without netif_tx_lock unless it needs to call
10937 * netif_wake_queue() 10937 * netif_wake_queue()
10938 */ 10938 */
10939static int bnx2x_start_xmit(struct sk_buff *skb, struct net_device *dev) 10939static netdev_tx_t bnx2x_start_xmit(struct sk_buff *skb, struct net_device *dev)
10940{ 10940{
10941 struct bnx2x *bp = netdev_priv(dev); 10941 struct bnx2x *bp = netdev_priv(dev);
10942 struct bnx2x_fastpath *fp, *fp_stat; 10942 struct bnx2x_fastpath *fp, *fp_stat;
diff --git a/drivers/net/can/sja1000/sja1000.c b/drivers/net/can/sja1000/sja1000.c
index b3004de1e5e4..9ce3ddac4e9b 100644
--- a/drivers/net/can/sja1000/sja1000.c
+++ b/drivers/net/can/sja1000/sja1000.c
@@ -238,7 +238,8 @@ static void chipset_init(struct net_device *dev)
238 * xx xx xx xx ff ll 00 11 22 33 44 55 66 77 238 * xx xx xx xx ff ll 00 11 22 33 44 55 66 77
239 * [ can-id ] [flags] [len] [can data (up to 8 bytes] 239 * [ can-id ] [flags] [len] [can data (up to 8 bytes]
240 */ 240 */
241static int sja1000_start_xmit(struct sk_buff *skb, struct net_device *dev) 241static netdev_tx_t sja1000_start_xmit(struct sk_buff *skb,
242 struct net_device *dev)
242{ 243{
243 struct sja1000_priv *priv = netdev_priv(dev); 244 struct sja1000_priv *priv = netdev_priv(dev);
244 struct net_device_stats *stats = &dev->stats; 245 struct net_device_stats *stats = &dev->stats;
diff --git a/drivers/net/cassini.c b/drivers/net/cassini.c
index 299a33b914f8..7517dc1da650 100644
--- a/drivers/net/cassini.c
+++ b/drivers/net/cassini.c
@@ -2918,7 +2918,7 @@ static inline int cas_xmit_tx_ringN(struct cas *cp, int ring,
2918 return 0; 2918 return 0;
2919} 2919}
2920 2920
2921static int cas_start_xmit(struct sk_buff *skb, struct net_device *dev) 2921static netdev_tx_t cas_start_xmit(struct sk_buff *skb, struct net_device *dev)
2922{ 2922{
2923 struct cas *cp = netdev_priv(dev); 2923 struct cas *cp = netdev_priv(dev);
2924 2924
diff --git a/drivers/net/chelsio/sge.c b/drivers/net/chelsio/sge.c
index 3711d64e45ef..8c658cf6f62f 100644
--- a/drivers/net/chelsio/sge.c
+++ b/drivers/net/chelsio/sge.c
@@ -1776,7 +1776,7 @@ static inline int eth_hdr_len(const void *data)
1776/* 1776/*
1777 * Adds the CPL header to the sk_buff and passes it to t1_sge_tx. 1777 * Adds the CPL header to the sk_buff and passes it to t1_sge_tx.
1778 */ 1778 */
1779int t1_start_xmit(struct sk_buff *skb, struct net_device *dev) 1779netdev_tx_t t1_start_xmit(struct sk_buff *skb, struct net_device *dev)
1780{ 1780{
1781 struct adapter *adapter = dev->ml_priv; 1781 struct adapter *adapter = dev->ml_priv;
1782 struct sge *sge = adapter->sge; 1782 struct sge *sge = adapter->sge;
diff --git a/drivers/net/chelsio/sge.h b/drivers/net/chelsio/sge.h
index 8c9405123992..00cc37fc1f6f 100644
--- a/drivers/net/chelsio/sge.h
+++ b/drivers/net/chelsio/sge.h
@@ -78,7 +78,7 @@ void t1_sge_destroy(struct sge *);
78irqreturn_t t1_interrupt(int irq, void *cookie); 78irqreturn_t t1_interrupt(int irq, void *cookie);
79int t1_poll(struct napi_struct *, int); 79int t1_poll(struct napi_struct *, int);
80 80
81int t1_start_xmit(struct sk_buff *skb, struct net_device *dev); 81netdev_tx_t t1_start_xmit(struct sk_buff *skb, struct net_device *dev);
82void t1_set_vlan_accel(struct adapter *adapter, int on_off); 82void t1_set_vlan_accel(struct adapter *adapter, int on_off);
83void t1_sge_start(struct sge *); 83void t1_sge_start(struct sge *);
84void t1_sge_stop(struct sge *); 84void t1_sge_stop(struct sge *);
diff --git a/drivers/net/cs89x0.c b/drivers/net/cs89x0.c
index 839cac5fd8a5..0c54219960e2 100644
--- a/drivers/net/cs89x0.c
+++ b/drivers/net/cs89x0.c
@@ -246,7 +246,7 @@ struct net_local {
246 246
247static int cs89x0_probe1(struct net_device *dev, int ioaddr, int modular); 247static int cs89x0_probe1(struct net_device *dev, int ioaddr, int modular);
248static int net_open(struct net_device *dev); 248static int net_open(struct net_device *dev);
249static int net_send_packet(struct sk_buff *skb, struct net_device *dev); 249static netdev_tx_t net_send_packet(struct sk_buff *skb, struct net_device *dev);
250static irqreturn_t net_interrupt(int irq, void *dev_id); 250static irqreturn_t net_interrupt(int irq, void *dev_id);
251static void set_multicast_list(struct net_device *dev); 251static void set_multicast_list(struct net_device *dev);
252static void net_timeout(struct net_device *dev); 252static void net_timeout(struct net_device *dev);
@@ -1518,7 +1518,7 @@ static void net_timeout(struct net_device *dev)
1518 netif_wake_queue(dev); 1518 netif_wake_queue(dev);
1519} 1519}
1520 1520
1521static int net_send_packet(struct sk_buff *skb, struct net_device *dev) 1521static netdev_tx_t net_send_packet(struct sk_buff *skb,struct net_device *dev)
1522{ 1522{
1523 struct net_local *lp = netdev_priv(dev); 1523 struct net_local *lp = netdev_priv(dev);
1524 unsigned long flags; 1524 unsigned long flags;
diff --git a/drivers/net/cxgb3/adapter.h b/drivers/net/cxgb3/adapter.h
index 74723f2e7431..2b1aea6aa558 100644
--- a/drivers/net/cxgb3/adapter.h
+++ b/drivers/net/cxgb3/adapter.h
@@ -309,7 +309,7 @@ void t3_stop_sge_timers(struct adapter *adap);
309void t3_free_sge_resources(struct adapter *adap); 309void t3_free_sge_resources(struct adapter *adap);
310void t3_sge_err_intr_handler(struct adapter *adapter); 310void t3_sge_err_intr_handler(struct adapter *adapter);
311irq_handler_t t3_intr_handler(struct adapter *adap, int polling); 311irq_handler_t t3_intr_handler(struct adapter *adap, int polling);
312int t3_eth_xmit(struct sk_buff *skb, struct net_device *dev); 312netdev_tx_t t3_eth_xmit(struct sk_buff *skb, struct net_device *dev);
313int t3_mgmt_tx(struct adapter *adap, struct sk_buff *skb); 313int t3_mgmt_tx(struct adapter *adap, struct sk_buff *skb);
314void t3_update_qset_coalesce(struct sge_qset *qs, const struct qset_params *p); 314void t3_update_qset_coalesce(struct sge_qset *qs, const struct qset_params *p);
315int t3_sge_alloc_qset(struct adapter *adapter, unsigned int id, int nports, 315int t3_sge_alloc_qset(struct adapter *adapter, unsigned int id, int nports,
diff --git a/drivers/net/cxgb3/sge.c b/drivers/net/cxgb3/sge.c
index 29c79eb43beb..f86612857a73 100644
--- a/drivers/net/cxgb3/sge.c
+++ b/drivers/net/cxgb3/sge.c
@@ -1216,7 +1216,7 @@ static inline void t3_stop_tx_queue(struct netdev_queue *txq,
1216 * 1216 *
1217 * Add a packet to an SGE Tx queue. Runs with softirqs disabled. 1217 * Add a packet to an SGE Tx queue. Runs with softirqs disabled.
1218 */ 1218 */
1219int t3_eth_xmit(struct sk_buff *skb, struct net_device *dev) 1219netdev_tx_t t3_eth_xmit(struct sk_buff *skb, struct net_device *dev)
1220{ 1220{
1221 int qidx; 1221 int qidx;
1222 unsigned int ndesc, pidx, credits, gen, compl; 1222 unsigned int ndesc, pidx, credits, gen, compl;
diff --git a/drivers/net/defxx.c b/drivers/net/defxx.c
index b2e0a8fc21d7..6a6ea038d7a3 100644
--- a/drivers/net/defxx.c
+++ b/drivers/net/defxx.c
@@ -300,7 +300,8 @@ static int dfx_rcv_init(DFX_board_t *bp, int get_buffers);
300static void dfx_rcv_queue_process(DFX_board_t *bp); 300static void dfx_rcv_queue_process(DFX_board_t *bp);
301static void dfx_rcv_flush(DFX_board_t *bp); 301static void dfx_rcv_flush(DFX_board_t *bp);
302 302
303static int dfx_xmt_queue_pkt(struct sk_buff *skb, struct net_device *dev); 303static netdev_tx_t dfx_xmt_queue_pkt(struct sk_buff *skb,
304 struct net_device *dev);
304static int dfx_xmt_done(DFX_board_t *bp); 305static int dfx_xmt_done(DFX_board_t *bp);
305static void dfx_xmt_flush(DFX_board_t *bp); 306static void dfx_xmt_flush(DFX_board_t *bp);
306 307
@@ -3188,11 +3189,8 @@ static void dfx_rcv_queue_process(
3188 * None 3189 * None
3189 */ 3190 */
3190 3191
3191static int dfx_xmt_queue_pkt( 3192static netdev_tx_t dfx_xmt_queue_pkt(struct sk_buff *skb,
3192 struct sk_buff *skb, 3193 struct net_device *dev)
3193 struct net_device *dev
3194 )
3195
3196 { 3194 {
3197 DFX_board_t *bp = netdev_priv(dev); 3195 DFX_board_t *bp = netdev_priv(dev);
3198 u8 prod; /* local transmit producer index */ 3196 u8 prod; /* local transmit producer index */
diff --git a/drivers/net/depca.c b/drivers/net/depca.c
index adb997c5bb5d..9686c1fa28f1 100644
--- a/drivers/net/depca.c
+++ b/drivers/net/depca.c
@@ -516,7 +516,8 @@ struct depca_private {
516** Public Functions 516** Public Functions
517*/ 517*/
518static int depca_open(struct net_device *dev); 518static int depca_open(struct net_device *dev);
519static int depca_start_xmit(struct sk_buff *skb, struct net_device *dev); 519static netdev_tx_t depca_start_xmit(struct sk_buff *skb,
520 struct net_device *dev);
520static irqreturn_t depca_interrupt(int irq, void *dev_id); 521static irqreturn_t depca_interrupt(int irq, void *dev_id);
521static int depca_close(struct net_device *dev); 522static int depca_close(struct net_device *dev);
522static int depca_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 523static int depca_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
@@ -928,7 +929,8 @@ static void depca_tx_timeout(struct net_device *dev)
928/* 929/*
929** Writes a socket buffer to TX descriptor ring and starts transmission 930** Writes a socket buffer to TX descriptor ring and starts transmission
930*/ 931*/
931static int depca_start_xmit(struct sk_buff *skb, struct net_device *dev) 932static netdev_tx_t depca_start_xmit(struct sk_buff *skb,
933 struct net_device *dev)
932{ 934{
933 struct depca_private *lp = netdev_priv(dev); 935 struct depca_private *lp = netdev_priv(dev);
934 u_long ioaddr = dev->base_addr; 936 u_long ioaddr = dev->base_addr;
diff --git a/drivers/net/dl2k.c b/drivers/net/dl2k.c
index 4b6a219fecea..7fa7a907f134 100644
--- a/drivers/net/dl2k.c
+++ b/drivers/net/dl2k.c
@@ -59,7 +59,7 @@ static int rio_open (struct net_device *dev);
59static void rio_timer (unsigned long data); 59static void rio_timer (unsigned long data);
60static void rio_tx_timeout (struct net_device *dev); 60static void rio_tx_timeout (struct net_device *dev);
61static void alloc_list (struct net_device *dev); 61static void alloc_list (struct net_device *dev);
62static int start_xmit (struct sk_buff *skb, struct net_device *dev); 62static netdev_tx_t start_xmit (struct sk_buff *skb, struct net_device *dev);
63static irqreturn_t rio_interrupt (int irq, void *dev_instance); 63static irqreturn_t rio_interrupt (int irq, void *dev_instance);
64static void rio_free_tx (struct net_device *dev, int irq); 64static void rio_free_tx (struct net_device *dev, int irq);
65static void tx_error (struct net_device *dev, int tx_status); 65static void tx_error (struct net_device *dev, int tx_status);
@@ -600,7 +600,7 @@ alloc_list (struct net_device *dev)
600 return; 600 return;
601} 601}
602 602
603static int 603static netdev_tx_t
604start_xmit (struct sk_buff *skb, struct net_device *dev) 604start_xmit (struct sk_buff *skb, struct net_device *dev)
605{ 605{
606 struct netdev_private *np = netdev_priv(dev); 606 struct netdev_private *np = netdev_priv(dev);
diff --git a/drivers/net/dnet.c b/drivers/net/dnet.c
index 2818d5de3940..234685213f1a 100644
--- a/drivers/net/dnet.c
+++ b/drivers/net/dnet.c
@@ -541,7 +541,7 @@ static inline void dnet_print_skb(struct sk_buff *skb)
541#define dnet_print_skb(skb) do {} while (0) 541#define dnet_print_skb(skb) do {} while (0)
542#endif 542#endif
543 543
544static int dnet_start_xmit(struct sk_buff *skb, struct net_device *dev) 544static netdev_tx_t dnet_start_xmit(struct sk_buff *skb, struct net_device *dev)
545{ 545{
546 546
547 struct dnet *bp = netdev_priv(dev); 547 struct dnet *bp = netdev_priv(dev);
diff --git a/drivers/net/eepro.c b/drivers/net/eepro.c
index 53317a83857a..1e934160062c 100644
--- a/drivers/net/eepro.c
+++ b/drivers/net/eepro.c
@@ -309,7 +309,8 @@ struct eepro_local {
309 309
310static int eepro_probe1(struct net_device *dev, int autoprobe); 310static int eepro_probe1(struct net_device *dev, int autoprobe);
311static int eepro_open(struct net_device *dev); 311static int eepro_open(struct net_device *dev);
312static int eepro_send_packet(struct sk_buff *skb, struct net_device *dev); 312static netdev_tx_t eepro_send_packet(struct sk_buff *skb,
313 struct net_device *dev);
313static irqreturn_t eepro_interrupt(int irq, void *dev_id); 314static irqreturn_t eepro_interrupt(int irq, void *dev_id);
314static void eepro_rx(struct net_device *dev); 315static void eepro_rx(struct net_device *dev);
315static void eepro_transmit_interrupt(struct net_device *dev); 316static void eepro_transmit_interrupt(struct net_device *dev);
@@ -1133,7 +1134,8 @@ static void eepro_tx_timeout (struct net_device *dev)
1133} 1134}
1134 1135
1135 1136
1136static int eepro_send_packet(struct sk_buff *skb, struct net_device *dev) 1137static netdev_tx_t eepro_send_packet(struct sk_buff *skb,
1138 struct net_device *dev)
1137{ 1139{
1138 struct eepro_local *lp = netdev_priv(dev); 1140 struct eepro_local *lp = netdev_priv(dev);
1139 unsigned long flags; 1141 unsigned long flags;
diff --git a/drivers/net/eexpress.c b/drivers/net/eexpress.c
index d1b6368faacd..592de8f1668a 100644
--- a/drivers/net/eexpress.c
+++ b/drivers/net/eexpress.c
@@ -246,7 +246,8 @@ static char mca_irqmap[] = { 12, 9, 3, 4, 5, 10, 11, 15 };
246static int eexp_open(struct net_device *dev); 246static int eexp_open(struct net_device *dev);
247static int eexp_close(struct net_device *dev); 247static int eexp_close(struct net_device *dev);
248static void eexp_timeout(struct net_device *dev); 248static void eexp_timeout(struct net_device *dev);
249static int eexp_xmit(struct sk_buff *buf, struct net_device *dev); 249static netdev_tx_t eexp_xmit(struct sk_buff *buf,
250 struct net_device *dev);
250 251
251static irqreturn_t eexp_irq(int irq, void *dev_addr); 252static irqreturn_t eexp_irq(int irq, void *dev_addr);
252static void eexp_set_multicast(struct net_device *dev); 253static void eexp_set_multicast(struct net_device *dev);
@@ -650,7 +651,7 @@ static void eexp_timeout(struct net_device *dev)
650 * Called to transmit a packet, or to allow us to right ourselves 651 * Called to transmit a packet, or to allow us to right ourselves
651 * if the kernel thinks we've died. 652 * if the kernel thinks we've died.
652 */ 653 */
653static int eexp_xmit(struct sk_buff *buf, struct net_device *dev) 654static netdev_tx_t eexp_xmit(struct sk_buff *buf, struct net_device *dev)
654{ 655{
655 short length = buf->len; 656 short length = buf->len;
656#ifdef CONFIG_SMP 657#ifdef CONFIG_SMP
diff --git a/drivers/net/enc28j60.c b/drivers/net/enc28j60.c
index 372d6c6a4e7f..117fc6c12e34 100644
--- a/drivers/net/enc28j60.c
+++ b/drivers/net/enc28j60.c
@@ -1276,7 +1276,8 @@ static void enc28j60_hw_tx(struct enc28j60_net *priv)
1276 locked_reg_bfset(priv, ECON1, ECON1_TXRTS); 1276 locked_reg_bfset(priv, ECON1, ECON1_TXRTS);
1277} 1277}
1278 1278
1279static int enc28j60_send_packet(struct sk_buff *skb, struct net_device *dev) 1279static netdev_tx_t enc28j60_send_packet(struct sk_buff *skb,
1280 struct net_device *dev)
1280{ 1281{
1281 struct enc28j60_net *priv = netdev_priv(dev); 1282 struct enc28j60_net *priv = netdev_priv(dev);
1282 1283
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
index 8005b602f776..49912eb2a338 100644
--- a/drivers/net/enic/enic_main.c
+++ b/drivers/net/enic/enic_main.c
@@ -622,7 +622,8 @@ static inline void enic_queue_wq_skb(struct enic *enic,
622} 622}
623 623
624/* netif_tx_lock held, process context with BHs disabled, or BH */ 624/* netif_tx_lock held, process context with BHs disabled, or BH */
625static int enic_hard_start_xmit(struct sk_buff *skb, struct net_device *netdev) 625static netdev_tx_t enic_hard_start_xmit(struct sk_buff *skb,
626 struct net_device *netdev)
626{ 627{
627 struct enic *enic = netdev_priv(netdev); 628 struct enic *enic = netdev_priv(netdev);
628 struct vnic_wq *wq = &enic->wq[0]; 629 struct vnic_wq *wq = &enic->wq[0];
diff --git a/drivers/net/epic100.c b/drivers/net/epic100.c
index d668ff2af6e3..641a10d2e843 100644
--- a/drivers/net/epic100.c
+++ b/drivers/net/epic100.c
@@ -298,7 +298,8 @@ static void epic_restart(struct net_device *dev);
298static void epic_timer(unsigned long data); 298static void epic_timer(unsigned long data);
299static void epic_tx_timeout(struct net_device *dev); 299static void epic_tx_timeout(struct net_device *dev);
300static void epic_init_ring(struct net_device *dev); 300static void epic_init_ring(struct net_device *dev);
301static int epic_start_xmit(struct sk_buff *skb, struct net_device *dev); 301static netdev_tx_t epic_start_xmit(struct sk_buff *skb,
302 struct net_device *dev);
302static int epic_rx(struct net_device *dev, int budget); 303static int epic_rx(struct net_device *dev, int budget);
303static int epic_poll(struct napi_struct *napi, int budget); 304static int epic_poll(struct napi_struct *napi, int budget);
304static irqreturn_t epic_interrupt(int irq, void *dev_instance); 305static irqreturn_t epic_interrupt(int irq, void *dev_instance);
@@ -961,7 +962,7 @@ static void epic_init_ring(struct net_device *dev)
961 return; 962 return;
962} 963}
963 964
964static int epic_start_xmit(struct sk_buff *skb, struct net_device *dev) 965static netdev_tx_t epic_start_xmit(struct sk_buff *skb, struct net_device *dev)
965{ 966{
966 struct epic_private *ep = netdev_priv(dev); 967 struct epic_private *ep = netdev_priv(dev);
967 int entry, free_count; 968 int entry, free_count;
diff --git a/drivers/net/eth16i.c b/drivers/net/eth16i.c
index 97d5205edc8f..71bfeec33a0b 100644
--- a/drivers/net/eth16i.c
+++ b/drivers/net/eth16i.c
@@ -405,7 +405,7 @@ static int eth16i_read_eeprom_word(int ioaddr);
405static void eth16i_eeprom_cmd(int ioaddr, unsigned char command); 405static void eth16i_eeprom_cmd(int ioaddr, unsigned char command);
406static int eth16i_open(struct net_device *dev); 406static int eth16i_open(struct net_device *dev);
407static int eth16i_close(struct net_device *dev); 407static int eth16i_close(struct net_device *dev);
408static int eth16i_tx(struct sk_buff *skb, struct net_device *dev); 408static netdev_tx_t eth16i_tx(struct sk_buff *skb, struct net_device *dev);
409static void eth16i_rx(struct net_device *dev); 409static void eth16i_rx(struct net_device *dev);
410static void eth16i_timeout(struct net_device *dev); 410static void eth16i_timeout(struct net_device *dev);
411static irqreturn_t eth16i_interrupt(int irq, void *dev_id); 411static irqreturn_t eth16i_interrupt(int irq, void *dev_id);
@@ -1053,7 +1053,7 @@ static void eth16i_timeout(struct net_device *dev)
1053 netif_wake_queue(dev); 1053 netif_wake_queue(dev);
1054} 1054}
1055 1055
1056static int eth16i_tx(struct sk_buff *skb, struct net_device *dev) 1056static netdev_tx_t eth16i_tx(struct sk_buff *skb, struct net_device *dev)
1057{ 1057{
1058 struct eth16i_local *lp = netdev_priv(dev); 1058 struct eth16i_local *lp = netdev_priv(dev);
1059 int ioaddr = dev->base_addr; 1059 int ioaddr = dev->base_addr;
diff --git a/drivers/net/ethoc.c b/drivers/net/ethoc.c
index 4dbe5f173273..b871aefed9c6 100644
--- a/drivers/net/ethoc.c
+++ b/drivers/net/ethoc.c
@@ -802,7 +802,7 @@ static struct net_device_stats *ethoc_stats(struct net_device *dev)
802 return &priv->stats; 802 return &priv->stats;
803} 803}
804 804
805static int ethoc_start_xmit(struct sk_buff *skb, struct net_device *dev) 805static netdev_tx_t ethoc_start_xmit(struct sk_buff *skb, struct net_device *dev)
806{ 806{
807 struct ethoc *priv = netdev_priv(dev); 807 struct ethoc *priv = netdev_priv(dev);
808 struct ethoc_bd bd; 808 struct ethoc_bd bd;
diff --git a/drivers/net/ewrk3.c b/drivers/net/ewrk3.c
index 9c51bc813ad3..b2a5ec8f3721 100644
--- a/drivers/net/ewrk3.c
+++ b/drivers/net/ewrk3.c
@@ -298,7 +298,7 @@ struct ewrk3_private {
298 ** Public Functions 298 ** Public Functions
299 */ 299 */
300static int ewrk3_open(struct net_device *dev); 300static int ewrk3_open(struct net_device *dev);
301static int ewrk3_queue_pkt(struct sk_buff *skb, struct net_device *dev); 301static netdev_tx_t ewrk3_queue_pkt(struct sk_buff *skb, struct net_device *dev);
302static irqreturn_t ewrk3_interrupt(int irq, void *dev_id); 302static irqreturn_t ewrk3_interrupt(int irq, void *dev_id);
303static int ewrk3_close(struct net_device *dev); 303static int ewrk3_close(struct net_device *dev);
304static void set_multicast_list(struct net_device *dev); 304static void set_multicast_list(struct net_device *dev);
@@ -764,7 +764,7 @@ static void ewrk3_timeout(struct net_device *dev)
764/* 764/*
765 ** Writes a socket buffer to the free page queue 765 ** Writes a socket buffer to the free page queue
766 */ 766 */
767static int ewrk3_queue_pkt (struct sk_buff *skb, struct net_device *dev) 767static netdev_tx_t ewrk3_queue_pkt(struct sk_buff *skb, struct net_device *dev)
768{ 768{
769 struct ewrk3_private *lp = netdev_priv(dev); 769 struct ewrk3_private *lp = netdev_priv(dev);
770 u_long iobase = dev->base_addr; 770 u_long iobase = dev->base_addr;
diff --git a/drivers/net/fealnx.c b/drivers/net/fealnx.c
index f66da84a9398..18d5fbb9673e 100644
--- a/drivers/net/fealnx.c
+++ b/drivers/net/fealnx.c
@@ -433,7 +433,7 @@ static void netdev_timer(unsigned long data);
433static void reset_timer(unsigned long data); 433static void reset_timer(unsigned long data);
434static void fealnx_tx_timeout(struct net_device *dev); 434static void fealnx_tx_timeout(struct net_device *dev);
435static void init_ring(struct net_device *dev); 435static void init_ring(struct net_device *dev);
436static int start_tx(struct sk_buff *skb, struct net_device *dev); 436static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev);
437static irqreturn_t intr_handler(int irq, void *dev_instance); 437static irqreturn_t intr_handler(int irq, void *dev_instance);
438static int netdev_rx(struct net_device *dev); 438static int netdev_rx(struct net_device *dev);
439static void set_rx_mode(struct net_device *dev); 439static void set_rx_mode(struct net_device *dev);
@@ -1305,7 +1305,7 @@ static void init_ring(struct net_device *dev)
1305} 1305}
1306 1306
1307 1307
1308static int start_tx(struct sk_buff *skb, struct net_device *dev) 1308static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev)
1309{ 1309{
1310 struct netdev_private *np = netdev_priv(dev); 1310 struct netdev_private *np = netdev_priv(dev);
1311 unsigned long flags; 1311 unsigned long flags;
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 3b4e0766c7b2..0a1c2bb27d4d 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -2137,7 +2137,7 @@ static void nv_gear_backoff_reseed(struct net_device *dev)
2137 * nv_start_xmit: dev->hard_start_xmit function 2137 * nv_start_xmit: dev->hard_start_xmit function
2138 * Called with netif_tx_lock held. 2138 * Called with netif_tx_lock held.
2139 */ 2139 */
2140static int nv_start_xmit(struct sk_buff *skb, struct net_device *dev) 2140static netdev_tx_t nv_start_xmit(struct sk_buff *skb, struct net_device *dev)
2141{ 2141{
2142 struct fe_priv *np = netdev_priv(dev); 2142 struct fe_priv *np = netdev_priv(dev);
2143 u32 tx_flags = 0; 2143 u32 tx_flags = 0;
@@ -2257,7 +2257,8 @@ static int nv_start_xmit(struct sk_buff *skb, struct net_device *dev)
2257 return NETDEV_TX_OK; 2257 return NETDEV_TX_OK;
2258} 2258}
2259 2259
2260static int nv_start_xmit_optimized(struct sk_buff *skb, struct net_device *dev) 2260static netdev_tx_t nv_start_xmit_optimized(struct sk_buff *skb,
2261 struct net_device *dev)
2261{ 2262{
2262 struct fe_priv *np = netdev_priv(dev); 2263 struct fe_priv *np = netdev_priv(dev);
2263 u32 tx_flags = 0; 2264 u32 tx_flags = 0;
diff --git a/drivers/net/hamachi.c b/drivers/net/hamachi.c
index 635341d6a028..1d5064a09aca 100644
--- a/drivers/net/hamachi.c
+++ b/drivers/net/hamachi.c
@@ -557,7 +557,8 @@ static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
557static void hamachi_timer(unsigned long data); 557static void hamachi_timer(unsigned long data);
558static void hamachi_tx_timeout(struct net_device *dev); 558static void hamachi_tx_timeout(struct net_device *dev);
559static void hamachi_init_ring(struct net_device *dev); 559static void hamachi_init_ring(struct net_device *dev);
560static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *dev); 560static netdev_tx_t hamachi_start_xmit(struct sk_buff *skb,
561 struct net_device *dev);
561static irqreturn_t hamachi_interrupt(int irq, void *dev_instance); 562static irqreturn_t hamachi_interrupt(int irq, void *dev_instance);
562static int hamachi_rx(struct net_device *dev); 563static int hamachi_rx(struct net_device *dev);
563static inline int hamachi_tx(struct net_device *dev); 564static inline int hamachi_tx(struct net_device *dev);
@@ -1263,7 +1264,8 @@ do { \
1263} while (0) 1264} while (0)
1264#endif 1265#endif
1265 1266
1266static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *dev) 1267static netdev_tx_t hamachi_start_xmit(struct sk_buff *skb,
1268 struct net_device *dev)
1267{ 1269{
1268 struct hamachi_private *hmp = netdev_priv(dev); 1270 struct hamachi_private *hmp = netdev_priv(dev);
1269 unsigned entry; 1271 unsigned entry;
diff --git a/drivers/net/hp100.c b/drivers/net/hp100.c
index d1b63387e9bc..a9a1a99f02dd 100644
--- a/drivers/net/hp100.c
+++ b/drivers/net/hp100.c
@@ -240,9 +240,10 @@ static int hp100_probe1(struct net_device *dev, int ioaddr, u_char bus,
240 240
241static int hp100_open(struct net_device *dev); 241static int hp100_open(struct net_device *dev);
242static int hp100_close(struct net_device *dev); 242static int hp100_close(struct net_device *dev);
243static int hp100_start_xmit(struct sk_buff *skb, struct net_device *dev); 243static netdev_tx_t hp100_start_xmit(struct sk_buff *skb,
244static int hp100_start_xmit_bm(struct sk_buff *skb, 244 struct net_device *dev);
245 struct net_device *dev); 245static netdev_tx_t hp100_start_xmit_bm(struct sk_buff *skb,
246 struct net_device *dev);
246static void hp100_rx(struct net_device *dev); 247static void hp100_rx(struct net_device *dev);
247static struct net_device_stats *hp100_get_stats(struct net_device *dev); 248static struct net_device_stats *hp100_get_stats(struct net_device *dev);
248static void hp100_misc_interrupt(struct net_device *dev); 249static void hp100_misc_interrupt(struct net_device *dev);
@@ -1483,7 +1484,8 @@ static int hp100_check_lan(struct net_device *dev)
1483 */ 1484 */
1484 1485
1485/* tx function for busmaster mode */ 1486/* tx function for busmaster mode */
1486static int hp100_start_xmit_bm(struct sk_buff *skb, struct net_device *dev) 1487static netdev_tx_t hp100_start_xmit_bm(struct sk_buff *skb,
1488 struct net_device *dev)
1487{ 1489{
1488 unsigned long flags; 1490 unsigned long flags;
1489 int i, ok_flag; 1491 int i, ok_flag;
@@ -1635,7 +1637,8 @@ static void hp100_clean_txring(struct net_device *dev)
1635} 1637}
1636 1638
1637/* tx function for slave modes */ 1639/* tx function for slave modes */
1638static int hp100_start_xmit(struct sk_buff *skb, struct net_device *dev) 1640static netdev_tx_t hp100_start_xmit(struct sk_buff *skb,
1641 struct net_device *dev)
1639{ 1642{
1640 unsigned long flags; 1643 unsigned long flags;
1641 int i, ok_flag; 1644 int i, ok_flag;
diff --git a/drivers/net/ibmlana.c b/drivers/net/ibmlana.c
index 448098d3b39b..090a6d3af112 100644
--- a/drivers/net/ibmlana.c
+++ b/drivers/net/ibmlana.c
@@ -812,7 +812,7 @@ static int ibmlana_close(struct net_device *dev)
812 812
813/* transmit a block. */ 813/* transmit a block. */
814 814
815static int ibmlana_tx(struct sk_buff *skb, struct net_device *dev) 815static netdev_tx_t ibmlana_tx(struct sk_buff *skb, struct net_device *dev)
816{ 816{
817 ibmlana_priv *priv = netdev_priv(dev); 817 ibmlana_priv *priv = netdev_priv(dev);
818 int tmplen, addr; 818 int tmplen, addr;
diff --git a/drivers/net/ibmveth.c b/drivers/net/ibmveth.c
index 76b295a18185..5862282ab2fe 100644
--- a/drivers/net/ibmveth.c
+++ b/drivers/net/ibmveth.c
@@ -887,7 +887,8 @@ static int ibmveth_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
887 887
888#define page_offset(v) ((unsigned long)(v) & ((1 << 12) - 1)) 888#define page_offset(v) ((unsigned long)(v) & ((1 << 12) - 1))
889 889
890static int ibmveth_start_xmit(struct sk_buff *skb, struct net_device *netdev) 890static netdev_tx_t ibmveth_start_xmit(struct sk_buff *skb,
891 struct net_device *netdev)
891{ 892{
892 struct ibmveth_adapter *adapter = netdev_priv(netdev); 893 struct ibmveth_adapter *adapter = netdev_priv(netdev);
893 union ibmveth_buf_desc desc; 894 union ibmveth_buf_desc desc;
diff --git a/drivers/net/ipg.c b/drivers/net/ipg.c
index 43019461b776..382c5532e6c5 100644
--- a/drivers/net/ipg.c
+++ b/drivers/net/ipg.c
@@ -1858,7 +1858,8 @@ static int ipg_nic_stop(struct net_device *dev)
1858 return 0; 1858 return 0;
1859} 1859}
1860 1860
1861static int ipg_nic_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) 1861static netdev_tx_t ipg_nic_hard_start_xmit(struct sk_buff *skb,
1862 struct net_device *dev)
1862{ 1863{
1863 struct ipg_nic_private *sp = netdev_priv(dev); 1864 struct ipg_nic_private *sp = netdev_priv(dev);
1864 void __iomem *ioaddr = sp->ioaddr; 1865 void __iomem *ioaddr = sp->ioaddr;
diff --git a/drivers/net/jme.c b/drivers/net/jme.c
index e7068c7cd627..1d2a32544ed2 100644
--- a/drivers/net/jme.c
+++ b/drivers/net/jme.c
@@ -1931,7 +1931,7 @@ jme_stop_queue_if_full(struct jme_adapter *jme)
1931 * This function is already protected by netif_tx_lock() 1931 * This function is already protected by netif_tx_lock()
1932 */ 1932 */
1933 1933
1934static int 1934static netdev_tx_t
1935jme_start_xmit(struct sk_buff *skb, struct net_device *netdev) 1935jme_start_xmit(struct sk_buff *skb, struct net_device *netdev)
1936{ 1936{
1937 struct jme_adapter *jme = netdev_priv(netdev); 1937 struct jme_adapter *jme = netdev_priv(netdev);
diff --git a/drivers/net/ks8842.c b/drivers/net/ks8842.c
index 39b0aea2aab3..6e74aa9eea44 100644
--- a/drivers/net/ks8842.c
+++ b/drivers/net/ks8842.c
@@ -551,7 +551,8 @@ static int ks8842_close(struct net_device *netdev)
551 return 0; 551 return 0;
552} 552}
553 553
554static int ks8842_xmit_frame(struct sk_buff *skb, struct net_device *netdev) 554static netdev_tx_t ks8842_xmit_frame(struct sk_buff *skb,
555 struct net_device *netdev)
555{ 556{
556 int ret; 557 int ret;
557 struct ks8842_adapter *adapter = netdev_priv(netdev); 558 struct ks8842_adapter *adapter = netdev_priv(netdev);
diff --git a/drivers/net/ks8851.c b/drivers/net/ks8851.c
index 9a1dea60c1c4..547ac7c7479c 100644
--- a/drivers/net/ks8851.c
+++ b/drivers/net/ks8851.c
@@ -868,11 +868,12 @@ static int ks8851_net_stop(struct net_device *dev)
868 * and secondly so we can round up more than one packet to transmit which 868 * and secondly so we can round up more than one packet to transmit which
869 * means we can try and avoid generating too many transmit done interrupts. 869 * means we can try and avoid generating too many transmit done interrupts.
870 */ 870 */
871static int ks8851_start_xmit(struct sk_buff *skb, struct net_device *dev) 871static netdev_tx_t ks8851_start_xmit(struct sk_buff *skb,
872 struct net_device *dev)
872{ 873{
873 struct ks8851_net *ks = netdev_priv(dev); 874 struct ks8851_net *ks = netdev_priv(dev);
874 unsigned needed = calc_txlen(skb->len); 875 unsigned needed = calc_txlen(skb->len);
875 int ret = NETDEV_TX_OK; 876 netdev_tx_t ret = NETDEV_TX_OK;
876 877
877 if (netif_msg_tx_queued(ks)) 878 if (netif_msg_tx_queued(ks))
878 ks_dbg(ks, "%s: skb %p, %d@%p\n", __func__, 879 ks_dbg(ks, "%s: skb %p, %d@%p\n", __func__,
diff --git a/drivers/net/lance.c b/drivers/net/lance.c
index 30fd4f5f1d5a..dcda30338b65 100644
--- a/drivers/net/lance.c
+++ b/drivers/net/lance.c
@@ -300,7 +300,8 @@ static unsigned char lance_need_isa_bounce_buffers = 1;
300 300
301static int lance_open(struct net_device *dev); 301static int lance_open(struct net_device *dev);
302static void lance_init_ring(struct net_device *dev, gfp_t mode); 302static void lance_init_ring(struct net_device *dev, gfp_t mode);
303static int lance_start_xmit(struct sk_buff *skb, struct net_device *dev); 303static netdev_tx_t lance_start_xmit(struct sk_buff *skb,
304 struct net_device *dev);
304static int lance_rx(struct net_device *dev); 305static int lance_rx(struct net_device *dev);
305static irqreturn_t lance_interrupt(int irq, void *dev_id); 306static irqreturn_t lance_interrupt(int irq, void *dev_id);
306static int lance_close(struct net_device *dev); 307static int lance_close(struct net_device *dev);
@@ -949,7 +950,8 @@ static void lance_tx_timeout (struct net_device *dev)
949} 950}
950 951
951 952
952static int lance_start_xmit(struct sk_buff *skb, struct net_device *dev) 953static netdev_tx_t lance_start_xmit(struct sk_buff *skb,
954 struct net_device *dev)
953{ 955{
954 struct lance_private *lp = dev->ml_priv; 956 struct lance_private *lp = dev->ml_priv;
955 int ioaddr = dev->base_addr; 957 int ioaddr = dev->base_addr;
diff --git a/drivers/net/lib8390.c b/drivers/net/lib8390.c
index d6be36000c5c..256119882b1e 100644
--- a/drivers/net/lib8390.c
+++ b/drivers/net/lib8390.c
@@ -299,7 +299,8 @@ static void __ei_tx_timeout(struct net_device *dev)
299 * Sends a packet to an 8390 network device. 299 * Sends a packet to an 8390 network device.
300 */ 300 */
301 301
302static int __ei_start_xmit(struct sk_buff *skb, struct net_device *dev) 302static netdev_tx_t __ei_start_xmit(struct sk_buff *skb,
303 struct net_device *dev)
303{ 304{
304 unsigned long e8390_base = dev->base_addr; 305 unsigned long e8390_base = dev->base_addr;
305 struct ei_device *ei_local = (struct ei_device *) netdev_priv(dev); 306 struct ei_device *ei_local = (struct ei_device *) netdev_priv(dev);
diff --git a/drivers/net/loopback.c b/drivers/net/loopback.c
index 51bbce72bede..1bc654a73c47 100644
--- a/drivers/net/loopback.c
+++ b/drivers/net/loopback.c
@@ -69,7 +69,8 @@ struct pcpu_lstats {
69 * The higher levels take care of making this non-reentrant (it's 69 * The higher levels take care of making this non-reentrant (it's
70 * called with bh's disabled). 70 * called with bh's disabled).
71 */ 71 */
72static int loopback_xmit(struct sk_buff *skb, struct net_device *dev) 72static netdev_tx_t loopback_xmit(struct sk_buff *skb,
73 struct net_device *dev)
73{ 74{
74 struct pcpu_lstats *pcpu_lstats, *lb_stats; 75 struct pcpu_lstats *pcpu_lstats, *lb_stats;
75 int len; 76 int len;
diff --git a/drivers/net/lp486e.c b/drivers/net/lp486e.c
index c292bad411ee..cc3ed9cf28be 100644
--- a/drivers/net/lp486e.c
+++ b/drivers/net/lp486e.c
@@ -377,7 +377,7 @@ static char init_setup[14] = {
377}; 377};
378 378
379static int i596_open(struct net_device *dev); 379static int i596_open(struct net_device *dev);
380static int i596_start_xmit(struct sk_buff *skb, struct net_device *dev); 380static netdev_tx_t i596_start_xmit(struct sk_buff *skb, struct net_device *dev);
381static irqreturn_t i596_interrupt(int irq, void *dev_id); 381static irqreturn_t i596_interrupt(int irq, void *dev_id);
382static int i596_close(struct net_device *dev); 382static int i596_close(struct net_device *dev);
383static void i596_add_cmd(struct net_device *dev, struct i596_cmd *cmd); 383static void i596_add_cmd(struct net_device *dev, struct i596_cmd *cmd);
@@ -863,7 +863,7 @@ static int i596_open(struct net_device *dev)
863 return 0; /* Always succeed */ 863 return 0; /* Always succeed */
864} 864}
865 865
866static int i596_start_xmit (struct sk_buff *skb, struct net_device *dev) { 866static netdev_tx_t i596_start_xmit (struct sk_buff *skb, struct net_device *dev) {
867 struct tx_cmd *tx_cmd; 867 struct tx_cmd *tx_cmd;
868 short length; 868 short length;
869 869
diff --git a/drivers/net/mlx4/en_tx.c b/drivers/net/mlx4/en_tx.c
index 0ecc1e1b013e..d3d6e991065b 100644
--- a/drivers/net/mlx4/en_tx.c
+++ b/drivers/net/mlx4/en_tx.c
@@ -588,7 +588,7 @@ u16 mlx4_en_select_queue(struct net_device *dev, struct sk_buff *skb)
588 return skb_tx_hash(dev, skb); 588 return skb_tx_hash(dev, skb);
589} 589}
590 590
591int mlx4_en_xmit(struct sk_buff *skb, struct net_device *dev) 591netdev_tx_t mlx4_en_xmit(struct sk_buff *skb, struct net_device *dev)
592{ 592{
593 struct mlx4_en_priv *priv = netdev_priv(dev); 593 struct mlx4_en_priv *priv = netdev_priv(dev);
594 struct mlx4_en_dev *mdev = priv->mdev; 594 struct mlx4_en_dev *mdev = priv->mdev;
diff --git a/drivers/net/mlx4/mlx4_en.h b/drivers/net/mlx4/mlx4_en.h
index 4513fb4960dc..4376147b0ea0 100644
--- a/drivers/net/mlx4/mlx4_en.h
+++ b/drivers/net/mlx4/mlx4_en.h
@@ -518,7 +518,7 @@ int mlx4_en_arm_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq);
518void mlx4_en_poll_tx_cq(unsigned long data); 518void mlx4_en_poll_tx_cq(unsigned long data);
519void mlx4_en_tx_irq(struct mlx4_cq *mcq); 519void mlx4_en_tx_irq(struct mlx4_cq *mcq);
520u16 mlx4_en_select_queue(struct net_device *dev, struct sk_buff *skb); 520u16 mlx4_en_select_queue(struct net_device *dev, struct sk_buff *skb);
521int mlx4_en_xmit(struct sk_buff *skb, struct net_device *dev); 521netdev_tx_t mlx4_en_xmit(struct sk_buff *skb, struct net_device *dev);
522 522
523int mlx4_en_create_tx_ring(struct mlx4_en_priv *priv, struct mlx4_en_tx_ring *ring, 523int mlx4_en_create_tx_ring(struct mlx4_en_priv *priv, struct mlx4_en_tx_ring *ring,
524 u32 size, u16 stride); 524 u32 size, u16 stride);
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c
index 75deef35b1e0..6930c87f362e 100644
--- a/drivers/net/myri10ge/myri10ge.c
+++ b/drivers/net/myri10ge/myri10ge.c
@@ -360,7 +360,8 @@ MODULE_PARM_DESC(myri10ge_dca, "Enable DCA if possible");
360#define myri10ge_pio_copy(to,from,size) __iowrite64_copy(to,from,size/8) 360#define myri10ge_pio_copy(to,from,size) __iowrite64_copy(to,from,size/8)
361 361
362static void myri10ge_set_multicast_list(struct net_device *dev); 362static void myri10ge_set_multicast_list(struct net_device *dev);
363static int myri10ge_sw_tso(struct sk_buff *skb, struct net_device *dev); 363static netdev_tx_t myri10ge_sw_tso(struct sk_buff *skb,
364 struct net_device *dev);
364 365
365static inline void put_be32(__be32 val, __be32 __iomem * p) 366static inline void put_be32(__be32 val, __be32 __iomem * p)
366{ 367{
@@ -2656,7 +2657,8 @@ myri10ge_submit_req(struct myri10ge_tx_buf *tx, struct mcp_kreq_ether_send *src,
2656 * it and try again. 2657 * it and try again.
2657 */ 2658 */
2658 2659
2659static int myri10ge_xmit(struct sk_buff *skb, struct net_device *dev) 2660static netdev_tx_t myri10ge_xmit(struct sk_buff *skb,
2661 struct net_device *dev)
2660{ 2662{
2661 struct myri10ge_priv *mgp = netdev_priv(dev); 2663 struct myri10ge_priv *mgp = netdev_priv(dev);
2662 struct myri10ge_slice_state *ss; 2664 struct myri10ge_slice_state *ss;
@@ -2947,12 +2949,13 @@ drop:
2947 2949
2948} 2950}
2949 2951
2950static int myri10ge_sw_tso(struct sk_buff *skb, struct net_device *dev) 2952static netdev_tx_t myri10ge_sw_tso(struct sk_buff *skb,
2953 struct net_device *dev)
2951{ 2954{
2952 struct sk_buff *segs, *curr; 2955 struct sk_buff *segs, *curr;
2953 struct myri10ge_priv *mgp = netdev_priv(dev); 2956 struct myri10ge_priv *mgp = netdev_priv(dev);
2954 struct myri10ge_slice_state *ss; 2957 struct myri10ge_slice_state *ss;
2955 int status; 2958 netdev_tx_t status;
2956 2959
2957 segs = skb_gso_segment(skb, dev->features & ~NETIF_F_TSO6); 2960 segs = skb_gso_segment(skb, dev->features & ~NETIF_F_TSO6);
2958 if (IS_ERR(segs)) 2961 if (IS_ERR(segs))
diff --git a/drivers/net/natsemi.c b/drivers/net/natsemi.c
index 32db12a27342..bd41351e4e26 100644
--- a/drivers/net/natsemi.c
+++ b/drivers/net/natsemi.c
@@ -621,7 +621,7 @@ static void drain_ring(struct net_device *dev);
621static void free_ring(struct net_device *dev); 621static void free_ring(struct net_device *dev);
622static void reinit_ring(struct net_device *dev); 622static void reinit_ring(struct net_device *dev);
623static void init_registers(struct net_device *dev); 623static void init_registers(struct net_device *dev);
624static int start_tx(struct sk_buff *skb, struct net_device *dev); 624static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev);
625static irqreturn_t intr_handler(int irq, void *dev_instance); 625static irqreturn_t intr_handler(int irq, void *dev_instance);
626static void netdev_error(struct net_device *dev, int intr_status); 626static void netdev_error(struct net_device *dev, int intr_status);
627static int natsemi_poll(struct napi_struct *napi, int budget); 627static int natsemi_poll(struct napi_struct *napi, int budget);
@@ -2079,7 +2079,7 @@ static void reinit_ring(struct net_device *dev)
2079 reinit_rx(dev); 2079 reinit_rx(dev);
2080} 2080}
2081 2081
2082static int start_tx(struct sk_buff *skb, struct net_device *dev) 2082static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev)
2083{ 2083{
2084 struct netdev_private *np = netdev_priv(dev); 2084 struct netdev_private *np = netdev_priv(dev);
2085 void __iomem * ioaddr = ns_ioaddr(dev); 2085 void __iomem * ioaddr = ns_ioaddr(dev);
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c
index fab51d16f5fb..f824a392bf56 100644
--- a/drivers/net/netxen/netxen_nic_main.c
+++ b/drivers/net/netxen/netxen_nic_main.c
@@ -63,7 +63,8 @@ static int __devinit netxen_nic_probe(struct pci_dev *pdev,
63static void __devexit netxen_nic_remove(struct pci_dev *pdev); 63static void __devexit netxen_nic_remove(struct pci_dev *pdev);
64static int netxen_nic_open(struct net_device *netdev); 64static int netxen_nic_open(struct net_device *netdev);
65static int netxen_nic_close(struct net_device *netdev); 65static int netxen_nic_close(struct net_device *netdev);
66static int netxen_nic_xmit_frame(struct sk_buff *, struct net_device *); 66static netdev_tx_t netxen_nic_xmit_frame(struct sk_buff *,
67 struct net_device *);
67static void netxen_tx_timeout(struct net_device *netdev); 68static void netxen_tx_timeout(struct net_device *netdev);
68static void netxen_reset_task(struct work_struct *work); 69static void netxen_reset_task(struct work_struct *work);
69static void netxen_watchdog(unsigned long); 70static void netxen_watchdog(unsigned long);
@@ -1599,7 +1600,7 @@ netxen_clear_cmddesc(u64 *desc)
1599 desc[2] = 0ULL; 1600 desc[2] = 0ULL;
1600} 1601}
1601 1602
1602static int 1603static netdev_tx_t
1603netxen_nic_xmit_frame(struct sk_buff *skb, struct net_device *netdev) 1604netxen_nic_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
1604{ 1605{
1605 struct netxen_adapter *adapter = netdev_priv(netdev); 1606 struct netxen_adapter *adapter = netdev_priv(netdev);
diff --git a/drivers/net/ni52.c b/drivers/net/ni52.c
index a0ac5d4f27d3..bd0ac690d12c 100644
--- a/drivers/net/ni52.c
+++ b/drivers/net/ni52.c
@@ -170,7 +170,7 @@ static int ni52_probe1(struct net_device *dev, int ioaddr);
170static irqreturn_t ni52_interrupt(int irq, void *dev_id); 170static irqreturn_t ni52_interrupt(int irq, void *dev_id);
171static int ni52_open(struct net_device *dev); 171static int ni52_open(struct net_device *dev);
172static int ni52_close(struct net_device *dev); 172static int ni52_close(struct net_device *dev);
173static int ni52_send_packet(struct sk_buff *, struct net_device *); 173static netdev_tx_t ni52_send_packet(struct sk_buff *, struct net_device *);
174static struct net_device_stats *ni52_get_stats(struct net_device *dev); 174static struct net_device_stats *ni52_get_stats(struct net_device *dev);
175static void set_multicast_list(struct net_device *dev); 175static void set_multicast_list(struct net_device *dev);
176static void ni52_timeout(struct net_device *dev); 176static void ni52_timeout(struct net_device *dev);
@@ -1173,7 +1173,8 @@ static void ni52_timeout(struct net_device *dev)
1173 * send frame 1173 * send frame
1174 */ 1174 */
1175 1175
1176static int ni52_send_packet(struct sk_buff *skb, struct net_device *dev) 1176static netdev_tx_t ni52_send_packet(struct sk_buff *skb,
1177 struct net_device *dev)
1177{ 1178{
1178 int len, i; 1179 int len, i;
1179#ifndef NO_NOPCOMMANDS 1180#ifndef NO_NOPCOMMANDS
diff --git a/drivers/net/ni65.c b/drivers/net/ni65.c
index 81a061785898..752c2e4d9cf4 100644
--- a/drivers/net/ni65.c
+++ b/drivers/net/ni65.c
@@ -252,7 +252,8 @@ static void ni65_xmit_intr(struct net_device *dev,int);
252static int ni65_open(struct net_device *dev); 252static int ni65_open(struct net_device *dev);
253static int ni65_lance_reinit(struct net_device *dev); 253static int ni65_lance_reinit(struct net_device *dev);
254static void ni65_init_lance(struct priv *p,unsigned char*,int,int); 254static void ni65_init_lance(struct priv *p,unsigned char*,int,int);
255static int ni65_send_packet(struct sk_buff *skb, struct net_device *dev); 255static netdev_tx_t ni65_send_packet(struct sk_buff *skb,
256 struct net_device *dev);
256static void ni65_timeout(struct net_device *dev); 257static void ni65_timeout(struct net_device *dev);
257static int ni65_close(struct net_device *dev); 258static int ni65_close(struct net_device *dev);
258static int ni65_alloc_buffer(struct net_device *dev); 259static int ni65_alloc_buffer(struct net_device *dev);
@@ -1157,7 +1158,8 @@ static void ni65_timeout(struct net_device *dev)
1157 * Send a packet 1158 * Send a packet
1158 */ 1159 */
1159 1160
1160static int ni65_send_packet(struct sk_buff *skb, struct net_device *dev) 1161static netdev_tx_t ni65_send_packet(struct sk_buff *skb,
1162 struct net_device *dev)
1161{ 1163{
1162 struct priv *p = dev->ml_priv; 1164 struct priv *p = dev->ml_priv;
1163 1165
diff --git a/drivers/net/niu.c b/drivers/net/niu.c
index 3ada7ea2abca..119fd4e04141 100644
--- a/drivers/net/niu.c
+++ b/drivers/net/niu.c
@@ -6657,7 +6657,8 @@ static u64 niu_compute_tx_flags(struct sk_buff *skb, struct ethhdr *ehdr,
6657 return ret; 6657 return ret;
6658} 6658}
6659 6659
6660static int niu_start_xmit(struct sk_buff *skb, struct net_device *dev) 6660static netdev_tx_t niu_start_xmit(struct sk_buff *skb,
6661 struct net_device *dev)
6661{ 6662{
6662 struct niu *np = netdev_priv(dev); 6663 struct niu *np = netdev_priv(dev);
6663 unsigned long align, headroom; 6664 unsigned long align, headroom;
diff --git a/drivers/net/ns83820.c b/drivers/net/ns83820.c
index 1576ac07216e..c594e1946476 100644
--- a/drivers/net/ns83820.c
+++ b/drivers/net/ns83820.c
@@ -1077,7 +1077,8 @@ static void ns83820_cleanup_tx(struct ns83820 *dev)
1077 * while trying to track down a bug in either the zero copy code or 1077 * while trying to track down a bug in either the zero copy code or
1078 * the tx fifo (hence the MAX_FRAG_LEN). 1078 * the tx fifo (hence the MAX_FRAG_LEN).
1079 */ 1079 */
1080static int ns83820_hard_start_xmit(struct sk_buff *skb, struct net_device *ndev) 1080static netdev_tx_t ns83820_hard_start_xmit(struct sk_buff *skb,
1081 struct net_device *ndev)
1081{ 1082{
1082 struct ns83820 *dev = PRIV(ndev); 1083 struct ns83820 *dev = PRIV(ndev);
1083 u32 free_idx, cmdsts, extsts; 1084 u32 free_idx, cmdsts, extsts;
diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c
index 6859442f1862..6d28b18e7e28 100644
--- a/drivers/net/pcnet32.c
+++ b/drivers/net/pcnet32.c
@@ -303,7 +303,8 @@ static int pcnet32_probe_pci(struct pci_dev *, const struct pci_device_id *);
303static int pcnet32_probe1(unsigned long, int, struct pci_dev *); 303static int pcnet32_probe1(unsigned long, int, struct pci_dev *);
304static int pcnet32_open(struct net_device *); 304static int pcnet32_open(struct net_device *);
305static int pcnet32_init_ring(struct net_device *); 305static int pcnet32_init_ring(struct net_device *);
306static int pcnet32_start_xmit(struct sk_buff *, struct net_device *); 306static netdev_tx_t pcnet32_start_xmit(struct sk_buff *,
307 struct net_device *);
307static void pcnet32_tx_timeout(struct net_device *dev); 308static void pcnet32_tx_timeout(struct net_device *dev);
308static irqreturn_t pcnet32_interrupt(int, void *); 309static irqreturn_t pcnet32_interrupt(int, void *);
309static int pcnet32_close(struct net_device *); 310static int pcnet32_close(struct net_device *);
@@ -2481,7 +2482,8 @@ static void pcnet32_tx_timeout(struct net_device *dev)
2481 spin_unlock_irqrestore(&lp->lock, flags); 2482 spin_unlock_irqrestore(&lp->lock, flags);
2482} 2483}
2483 2484
2484static int pcnet32_start_xmit(struct sk_buff *skb, struct net_device *dev) 2485static netdev_tx_t pcnet32_start_xmit(struct sk_buff *skb,
2486 struct net_device *dev)
2485{ 2487{
2486 struct pcnet32_private *lp = netdev_priv(dev); 2488 struct pcnet32_private *lp = netdev_priv(dev);
2487 unsigned long ioaddr = dev->base_addr; 2489 unsigned long ioaddr = dev->base_addr;
diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c
index 3e4b67aaa6ea..4c610511eb40 100644
--- a/drivers/net/qla3xxx.c
+++ b/drivers/net/qla3xxx.c
@@ -2572,7 +2572,8 @@ map_error:
2572 * The IOCB is always the top of the chain followed by one or more 2572 * The IOCB is always the top of the chain followed by one or more
2573 * OALs (when necessary). 2573 * OALs (when necessary).
2574 */ 2574 */
2575static int ql3xxx_send(struct sk_buff *skb, struct net_device *ndev) 2575static netdev_tx_t ql3xxx_send(struct sk_buff *skb,
2576 struct net_device *ndev)
2576{ 2577{
2577 struct ql3_adapter *qdev = (struct ql3_adapter *)netdev_priv(ndev); 2578 struct ql3_adapter *qdev = (struct ql3_adapter *)netdev_priv(ndev);
2578 struct ql3xxx_port_registers __iomem *port_regs = qdev->mem_map_registers; 2579 struct ql3xxx_port_registers __iomem *port_regs = qdev->mem_map_registers;
diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index 8dd266befdc7..220529257828 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -2103,7 +2103,7 @@ static void ql_hw_csum_setup(struct sk_buff *skb,
2103 iph->daddr, len, iph->protocol, 0); 2103 iph->daddr, len, iph->protocol, 0);
2104} 2104}
2105 2105
2106static int qlge_send(struct sk_buff *skb, struct net_device *ndev) 2106static netdev_tx_t qlge_send(struct sk_buff *skb, struct net_device *ndev)
2107{ 2107{
2108 struct tx_ring_desc *tx_ring_desc; 2108 struct tx_ring_desc *tx_ring_desc;
2109 struct ob_mac_iocb_req *mac_iocb_ptr; 2109 struct ob_mac_iocb_req *mac_iocb_ptr;
diff --git a/drivers/net/r6040.c b/drivers/net/r6040.c
index 8068a07eb2b3..7dfcb58b0eb4 100644
--- a/drivers/net/r6040.c
+++ b/drivers/net/r6040.c
@@ -883,13 +883,13 @@ static int r6040_open(struct net_device *dev)
883 return 0; 883 return 0;
884} 884}
885 885
886static int r6040_start_xmit(struct sk_buff *skb, struct net_device *dev) 886static netdev_tx_t r6040_start_xmit(struct sk_buff *skb,
887 struct net_device *dev)
887{ 888{
888 struct r6040_private *lp = netdev_priv(dev); 889 struct r6040_private *lp = netdev_priv(dev);
889 struct r6040_descriptor *descptr; 890 struct r6040_descriptor *descptr;
890 void __iomem *ioaddr = lp->base; 891 void __iomem *ioaddr = lp->base;
891 unsigned long flags; 892 unsigned long flags;
892 int ret = NETDEV_TX_OK;
893 893
894 /* Critical Section */ 894 /* Critical Section */
895 spin_lock_irqsave(&lp->lock, flags); 895 spin_lock_irqsave(&lp->lock, flags);
@@ -899,8 +899,7 @@ static int r6040_start_xmit(struct sk_buff *skb, struct net_device *dev)
899 spin_unlock_irqrestore(&lp->lock, flags); 899 spin_unlock_irqrestore(&lp->lock, flags);
900 netif_stop_queue(dev); 900 netif_stop_queue(dev);
901 printk(KERN_ERR DRV_NAME ": no tx descriptor\n"); 901 printk(KERN_ERR DRV_NAME ": no tx descriptor\n");
902 ret = NETDEV_TX_BUSY; 902 return NETDEV_TX_BUSY;
903 return ret;
904 } 903 }
905 904
906 /* Statistic Counter */ 905 /* Statistic Counter */
@@ -928,7 +927,8 @@ static int r6040_start_xmit(struct sk_buff *skb, struct net_device *dev)
928 927
929 dev->trans_start = jiffies; 928 dev->trans_start = jiffies;
930 spin_unlock_irqrestore(&lp->lock, flags); 929 spin_unlock_irqrestore(&lp->lock, flags);
931 return ret; 930
931 return NETDEV_TX_OK;
932} 932}
933 933
934static void r6040_multicast_list(struct net_device *dev) 934static void r6040_multicast_list(struct net_device *dev)
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index 8cd85309c675..ec0092affd5d 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -507,7 +507,8 @@ MODULE_LICENSE("GPL");
507MODULE_VERSION(RTL8169_VERSION); 507MODULE_VERSION(RTL8169_VERSION);
508 508
509static int rtl8169_open(struct net_device *dev); 509static int rtl8169_open(struct net_device *dev);
510static int rtl8169_start_xmit(struct sk_buff *skb, struct net_device *dev); 510static netdev_tx_t rtl8169_start_xmit(struct sk_buff *skb,
511 struct net_device *dev);
511static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance); 512static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance);
512static int rtl8169_init_ring(struct net_device *dev); 513static int rtl8169_init_ring(struct net_device *dev);
513static void rtl_hw_start(struct net_device *dev); 514static void rtl_hw_start(struct net_device *dev);
@@ -3357,7 +3358,8 @@ static inline u32 rtl8169_tso_csum(struct sk_buff *skb, struct net_device *dev)
3357 return 0; 3358 return 0;
3358} 3359}
3359 3360
3360static int rtl8169_start_xmit(struct sk_buff *skb, struct net_device *dev) 3361static netdev_tx_t rtl8169_start_xmit(struct sk_buff *skb,
3362 struct net_device *dev)
3361{ 3363{
3362 struct rtl8169_private *tp = netdev_priv(dev); 3364 struct rtl8169_private *tp = netdev_priv(dev);
3363 unsigned int frags, entry = tp->cur_tx % NUM_TX_DESC; 3365 unsigned int frags, entry = tp->cur_tx % NUM_TX_DESC;
@@ -3366,7 +3368,6 @@ static int rtl8169_start_xmit(struct sk_buff *skb, struct net_device *dev)
3366 dma_addr_t mapping; 3368 dma_addr_t mapping;
3367 u32 status, len; 3369 u32 status, len;
3368 u32 opts1; 3370 u32 opts1;
3369 int ret = NETDEV_TX_OK;
3370 3371
3371 if (unlikely(TX_BUFFS_AVAIL(tp) < skb_shinfo(skb)->nr_frags)) { 3372 if (unlikely(TX_BUFFS_AVAIL(tp) < skb_shinfo(skb)->nr_frags)) {
3372 if (netif_msg_drv(tp)) { 3373 if (netif_msg_drv(tp)) {
@@ -3418,13 +3419,12 @@ static int rtl8169_start_xmit(struct sk_buff *skb, struct net_device *dev)
3418 } 3419 }
3419 3420
3420out: 3421out:
3421 return ret; 3422 return NETDEV_TX_OK;
3422 3423
3423err_stop: 3424err_stop:
3424 netif_stop_queue(dev); 3425 netif_stop_queue(dev);
3425 ret = NETDEV_TX_BUSY;
3426 dev->stats.tx_dropped++; 3426 dev->stats.tx_dropped++;
3427 goto out; 3427 return NETDEV_TX_BUSY;
3428} 3428}
3429 3429
3430static void rtl8169_pcierr_interrupt(struct net_device *dev) 3430static void rtl8169_pcierr_interrupt(struct net_device *dev)
diff --git a/drivers/net/rrunner.c b/drivers/net/rrunner.c
index d95534655911..20a71749154a 100644
--- a/drivers/net/rrunner.c
+++ b/drivers/net/rrunner.c
@@ -1401,7 +1401,8 @@ static int rr_close(struct net_device *dev)
1401} 1401}
1402 1402
1403 1403
1404static int rr_start_xmit(struct sk_buff *skb, struct net_device *dev) 1404static netdev_tx_t rr_start_xmit(struct sk_buff *skb,
1405 struct net_device *dev)
1405{ 1406{
1406 struct rr_private *rrpriv = netdev_priv(dev); 1407 struct rr_private *rrpriv = netdev_priv(dev);
1407 struct rr_regs __iomem *regs = rrpriv->regs; 1408 struct rr_regs __iomem *regs = rrpriv->regs;
diff --git a/drivers/net/rrunner.h b/drivers/net/rrunner.h
index 6173f11218df..28169043ae49 100644
--- a/drivers/net/rrunner.h
+++ b/drivers/net/rrunner.h
@@ -831,7 +831,8 @@ static int rr_init1(struct net_device *dev);
831static irqreturn_t rr_interrupt(int irq, void *dev_id); 831static irqreturn_t rr_interrupt(int irq, void *dev_id);
832 832
833static int rr_open(struct net_device *dev); 833static int rr_open(struct net_device *dev);
834static int rr_start_xmit(struct sk_buff *skb, struct net_device *dev); 834static netdev_tx_t rr_start_xmit(struct sk_buff *skb,
835 struct net_device *dev);
835static int rr_close(struct net_device *dev); 836static int rr_close(struct net_device *dev);
836static int rr_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 837static int rr_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
837static unsigned int rr_read_eeprom(struct rr_private *rrpriv, 838static unsigned int rr_read_eeprom(struct rr_private *rrpriv,
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index 3138df5773ee..ddccf5fa56b6 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -4072,7 +4072,7 @@ static int s2io_close(struct net_device *dev)
4072 * 0 on success & 1 on failure. 4072 * 0 on success & 1 on failure.
4073 */ 4073 */
4074 4074
4075static int s2io_xmit(struct sk_buff *skb, struct net_device *dev) 4075static netdev_tx_t s2io_xmit(struct sk_buff *skb, struct net_device *dev)
4076{ 4076{
4077 struct s2io_nic *sp = netdev_priv(dev); 4077 struct s2io_nic *sp = netdev_priv(dev);
4078 u16 frg_cnt, frg_len, i, queue, queue_len, put_off, get_off; 4078 u16 frg_cnt, frg_len, i, queue, queue_len, put_off, get_off;
diff --git a/drivers/net/sb1000.c b/drivers/net/sb1000.c
index 6a81aec645d9..ee366c5a8fa3 100644
--- a/drivers/net/sb1000.c
+++ b/drivers/net/sb1000.c
@@ -82,7 +82,8 @@ struct sb1000_private {
82extern int sb1000_probe(struct net_device *dev); 82extern int sb1000_probe(struct net_device *dev);
83static int sb1000_open(struct net_device *dev); 83static int sb1000_open(struct net_device *dev);
84static int sb1000_dev_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd); 84static int sb1000_dev_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd);
85static int sb1000_start_xmit(struct sk_buff *skb, struct net_device *dev); 85static netdev_tx_t sb1000_start_xmit(struct sk_buff *skb,
86 struct net_device *dev);
86static irqreturn_t sb1000_interrupt(int irq, void *dev_id); 87static irqreturn_t sb1000_interrupt(int irq, void *dev_id);
87static int sb1000_close(struct net_device *dev); 88static int sb1000_close(struct net_device *dev);
88 89
@@ -1080,7 +1081,7 @@ static int sb1000_dev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
1080} 1081}
1081 1082
1082/* transmit function: do nothing since SB1000 can't send anything out */ 1083/* transmit function: do nothing since SB1000 can't send anything out */
1083static int 1084static netdev_tx_t
1084sb1000_start_xmit(struct sk_buff *skb, struct net_device *dev) 1085sb1000_start_xmit(struct sk_buff *skb, struct net_device *dev)
1085{ 1086{
1086 printk(KERN_WARNING "%s: trying to transmit!!!\n", dev->name); 1087 printk(KERN_WARNING "%s: trying to transmit!!!\n", dev->name);
diff --git a/drivers/net/sc92031.c b/drivers/net/sc92031.c
index e3156c97bb58..8d6030022d14 100644
--- a/drivers/net/sc92031.c
+++ b/drivers/net/sc92031.c
@@ -941,7 +941,8 @@ static struct net_device_stats *sc92031_get_stats(struct net_device *dev)
941 return &dev->stats; 941 return &dev->stats;
942} 942}
943 943
944static int sc92031_start_xmit(struct sk_buff *skb, struct net_device *dev) 944static netdev_tx_t sc92031_start_xmit(struct sk_buff *skb,
945 struct net_device *dev)
945{ 946{
946 struct sc92031_priv *priv = netdev_priv(dev); 947 struct sc92031_priv *priv = netdev_priv(dev);
947 void __iomem *port_base = priv->port_base; 948 void __iomem *port_base = priv->port_base;
diff --git a/drivers/net/seeq8005.c b/drivers/net/seeq8005.c
index 7cc8bb814137..39246d457ac2 100644
--- a/drivers/net/seeq8005.c
+++ b/drivers/net/seeq8005.c
@@ -81,7 +81,8 @@ struct net_local {
81static int seeq8005_probe1(struct net_device *dev, int ioaddr); 81static int seeq8005_probe1(struct net_device *dev, int ioaddr);
82static int seeq8005_open(struct net_device *dev); 82static int seeq8005_open(struct net_device *dev);
83static void seeq8005_timeout(struct net_device *dev); 83static void seeq8005_timeout(struct net_device *dev);
84static int seeq8005_send_packet(struct sk_buff *skb, struct net_device *dev); 84static netdev_tx_t seeq8005_send_packet(struct sk_buff *skb,
85 struct net_device *dev);
85static irqreturn_t seeq8005_interrupt(int irq, void *dev_id); 86static irqreturn_t seeq8005_interrupt(int irq, void *dev_id);
86static void seeq8005_rx(struct net_device *dev); 87static void seeq8005_rx(struct net_device *dev);
87static int seeq8005_close(struct net_device *dev); 88static int seeq8005_close(struct net_device *dev);
@@ -394,7 +395,8 @@ static void seeq8005_timeout(struct net_device *dev)
394 netif_wake_queue(dev); 395 netif_wake_queue(dev);
395} 396}
396 397
397static int seeq8005_send_packet(struct sk_buff *skb, struct net_device *dev) 398static netdev_tx_t seeq8005_send_packet(struct sk_buff *skb,
399 struct net_device *dev)
398{ 400{
399 short length = skb->len; 401 short length = skb->len;
400 unsigned char *buf; 402 unsigned char *buf;
diff --git a/drivers/net/sfc/efx.h b/drivers/net/sfc/efx.h
index da157aa74b83..aecaf62f4929 100644
--- a/drivers/net/sfc/efx.h
+++ b/drivers/net/sfc/efx.h
@@ -20,8 +20,9 @@
20#define FALCON_B_P_DEVID 0x0710 20#define FALCON_B_P_DEVID 0x0710
21 21
22/* TX */ 22/* TX */
23extern int efx_xmit(struct efx_nic *efx, 23extern netdev_tx_t efx_xmit(struct efx_nic *efx,
24 struct efx_tx_queue *tx_queue, struct sk_buff *skb); 24 struct efx_tx_queue *tx_queue,
25 struct sk_buff *skb);
25extern void efx_stop_queue(struct efx_nic *efx); 26extern void efx_stop_queue(struct efx_nic *efx);
26extern void efx_wake_queue(struct efx_nic *efx); 27extern void efx_wake_queue(struct efx_nic *efx);
27 28
diff --git a/drivers/net/sfc/selftest.c b/drivers/net/sfc/selftest.c
index b67ccca3fc1a..817c7efc11e0 100644
--- a/drivers/net/sfc/selftest.c
+++ b/drivers/net/sfc/selftest.c
@@ -400,7 +400,8 @@ static int efx_begin_loopback(struct efx_tx_queue *tx_queue)
400 struct efx_loopback_state *state = efx->loopback_selftest; 400 struct efx_loopback_state *state = efx->loopback_selftest;
401 struct efx_loopback_payload *payload; 401 struct efx_loopback_payload *payload;
402 struct sk_buff *skb; 402 struct sk_buff *skb;
403 int i, rc; 403 int i;
404 netdev_tx_t rc;
404 405
405 /* Transmit N copies of buffer */ 406 /* Transmit N copies of buffer */
406 for (i = 0; i < state->packet_count; i++) { 407 for (i = 0; i < state->packet_count; i++) {
diff --git a/drivers/net/sfc/tx.c b/drivers/net/sfc/tx.c
index 14a14788566c..489c4de31447 100644
--- a/drivers/net/sfc/tx.c
+++ b/drivers/net/sfc/tx.c
@@ -138,8 +138,8 @@ static void efx_tsoh_free(struct efx_tx_queue *tx_queue,
138 * Returns NETDEV_TX_OK or NETDEV_TX_BUSY 138 * Returns NETDEV_TX_OK or NETDEV_TX_BUSY
139 * You must hold netif_tx_lock() to call this function. 139 * You must hold netif_tx_lock() to call this function.
140 */ 140 */
141static int efx_enqueue_skb(struct efx_tx_queue *tx_queue, 141static netdev_tx_t efx_enqueue_skb(struct efx_tx_queue *tx_queue,
142 struct sk_buff *skb) 142 struct sk_buff *skb)
143{ 143{
144 struct efx_nic *efx = tx_queue->efx; 144 struct efx_nic *efx = tx_queue->efx;
145 struct pci_dev *pci_dev = efx->pci_dev; 145 struct pci_dev *pci_dev = efx->pci_dev;
@@ -152,7 +152,7 @@ static int efx_enqueue_skb(struct efx_tx_queue *tx_queue,
152 unsigned int dma_len; 152 unsigned int dma_len;
153 bool unmap_single; 153 bool unmap_single;
154 int q_space, i = 0; 154 int q_space, i = 0;
155 int rc = NETDEV_TX_OK; 155 netdev_tx_t rc = NETDEV_TX_OK;
156 156
157 EFX_BUG_ON_PARANOID(tx_queue->write_count != tx_queue->insert_count); 157 EFX_BUG_ON_PARANOID(tx_queue->write_count != tx_queue->insert_count);
158 158
@@ -353,14 +353,11 @@ static void efx_dequeue_buffers(struct efx_tx_queue *tx_queue,
353 * 353 *
354 * Context: netif_tx_lock held 354 * Context: netif_tx_lock held
355 */ 355 */
356inline int efx_xmit(struct efx_nic *efx, 356inline netdev_tx_t efx_xmit(struct efx_nic *efx,
357 struct efx_tx_queue *tx_queue, struct sk_buff *skb) 357 struct efx_tx_queue *tx_queue, struct sk_buff *skb)
358{ 358{
359 int rc;
360
361 /* Map fragments for DMA and add to TX queue */ 359 /* Map fragments for DMA and add to TX queue */
362 rc = efx_enqueue_skb(tx_queue, skb); 360 return efx_enqueue_skb(tx_queue, skb);
363 return rc;
364} 361}
365 362
366/* Initiate a packet transmission. We use one channel per CPU 363/* Initiate a packet transmission. We use one channel per CPU
@@ -372,7 +369,8 @@ inline int efx_xmit(struct efx_nic *efx,
372 * Note that returning anything other than NETDEV_TX_OK will cause the 369 * Note that returning anything other than NETDEV_TX_OK will cause the
373 * OS to free the skb. 370 * OS to free the skb.
374 */ 371 */
375int efx_hard_start_xmit(struct sk_buff *skb, struct net_device *net_dev) 372netdev_tx_t efx_hard_start_xmit(struct sk_buff *skb,
373 struct net_device *net_dev)
376{ 374{
377 struct efx_nic *efx = netdev_priv(net_dev); 375 struct efx_nic *efx = netdev_priv(net_dev);
378 struct efx_tx_queue *tx_queue; 376 struct efx_tx_queue *tx_queue;
diff --git a/drivers/net/sfc/tx.h b/drivers/net/sfc/tx.h
index 5e1cc234e42f..e3678962a5b4 100644
--- a/drivers/net/sfc/tx.h
+++ b/drivers/net/sfc/tx.h
@@ -18,7 +18,8 @@ void efx_remove_tx_queue(struct efx_tx_queue *tx_queue);
18void efx_init_tx_queue(struct efx_tx_queue *tx_queue); 18void efx_init_tx_queue(struct efx_tx_queue *tx_queue);
19void efx_fini_tx_queue(struct efx_tx_queue *tx_queue); 19void efx_fini_tx_queue(struct efx_tx_queue *tx_queue);
20 20
21int efx_hard_start_xmit(struct sk_buff *skb, struct net_device *net_dev); 21netdev_tx_t efx_hard_start_xmit(struct sk_buff *skb,
22 struct net_device *net_dev);
22void efx_release_tx_buffers(struct efx_tx_queue *tx_queue); 23void efx_release_tx_buffers(struct efx_tx_queue *tx_queue);
23 24
24#endif /* EFX_TX_H */ 25#endif /* EFX_TX_H */
diff --git a/drivers/net/sis190.c b/drivers/net/sis190.c
index 1f040e8a000b..7cc9898f4e00 100644
--- a/drivers/net/sis190.c
+++ b/drivers/net/sis190.c
@@ -1168,7 +1168,8 @@ static int sis190_close(struct net_device *dev)
1168 return 0; 1168 return 0;
1169} 1169}
1170 1170
1171static int sis190_start_xmit(struct sk_buff *skb, struct net_device *dev) 1171static netdev_tx_t sis190_start_xmit(struct sk_buff *skb,
1172 struct net_device *dev)
1172{ 1173{
1173 struct sis190_private *tp = netdev_priv(dev); 1174 struct sis190_private *tp = netdev_priv(dev);
1174 void __iomem *ioaddr = tp->mmio_addr; 1175 void __iomem *ioaddr = tp->mmio_addr;
diff --git a/drivers/net/sis900.c b/drivers/net/sis900.c
index 61ceeaaf104d..d8827323507a 100644
--- a/drivers/net/sis900.c
+++ b/drivers/net/sis900.c
@@ -214,7 +214,8 @@ static void sis900_check_mode (struct net_device *net_dev, struct mii_phy *mii_p
214static void sis900_tx_timeout(struct net_device *net_dev); 214static void sis900_tx_timeout(struct net_device *net_dev);
215static void sis900_init_tx_ring(struct net_device *net_dev); 215static void sis900_init_tx_ring(struct net_device *net_dev);
216static void sis900_init_rx_ring(struct net_device *net_dev); 216static void sis900_init_rx_ring(struct net_device *net_dev);
217static int sis900_start_xmit(struct sk_buff *skb, struct net_device *net_dev); 217static netdev_tx_t sis900_start_xmit(struct sk_buff *skb,
218 struct net_device *net_dev);
218static int sis900_rx(struct net_device *net_dev); 219static int sis900_rx(struct net_device *net_dev);
219static void sis900_finish_xmit (struct net_device *net_dev); 220static void sis900_finish_xmit (struct net_device *net_dev);
220static irqreturn_t sis900_interrupt(int irq, void *dev_instance); 221static irqreturn_t sis900_interrupt(int irq, void *dev_instance);
@@ -1571,7 +1572,7 @@ static void sis900_tx_timeout(struct net_device *net_dev)
1571 * tell upper layer if the buffer is full 1572 * tell upper layer if the buffer is full
1572 */ 1573 */
1573 1574
1574static int 1575static netdev_tx_t
1575sis900_start_xmit(struct sk_buff *skb, struct net_device *net_dev) 1576sis900_start_xmit(struct sk_buff *skb, struct net_device *net_dev)
1576{ 1577{
1577 struct sis900_private *sis_priv = netdev_priv(net_dev); 1578 struct sis900_private *sis_priv = netdev_priv(net_dev);
diff --git a/drivers/net/skfp/skfddi.c b/drivers/net/skfp/skfddi.c
index 888a14a045ef..38a508b4aad9 100644
--- a/drivers/net/skfp/skfddi.c
+++ b/drivers/net/skfp/skfddi.c
@@ -107,7 +107,8 @@ static void skfp_ctl_set_multicast_list(struct net_device *dev);
107static void skfp_ctl_set_multicast_list_wo_lock(struct net_device *dev); 107static void skfp_ctl_set_multicast_list_wo_lock(struct net_device *dev);
108static int skfp_ctl_set_mac_address(struct net_device *dev, void *addr); 108static int skfp_ctl_set_mac_address(struct net_device *dev, void *addr);
109static int skfp_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 109static int skfp_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
110static int skfp_send_pkt(struct sk_buff *skb, struct net_device *dev); 110static netdev_tx_t skfp_send_pkt(struct sk_buff *skb,
111 struct net_device *dev);
111static void send_queued_packets(struct s_smc *smc); 112static void send_queued_packets(struct s_smc *smc);
112static void CheckSourceAddress(unsigned char *frame, unsigned char *hw_addr); 113static void CheckSourceAddress(unsigned char *frame, unsigned char *hw_addr);
113static void ResetAdapter(struct s_smc *smc); 114static void ResetAdapter(struct s_smc *smc);
@@ -1056,7 +1057,8 @@ static int skfp_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
1056 * Side Effects: 1057 * Side Effects:
1057 * None 1058 * None
1058 */ 1059 */
1059static int skfp_send_pkt(struct sk_buff *skb, struct net_device *dev) 1060static netdev_tx_t skfp_send_pkt(struct sk_buff *skb,
1061 struct net_device *dev)
1060{ 1062{
1061 struct s_smc *smc = netdev_priv(dev); 1063 struct s_smc *smc = netdev_priv(dev);
1062 skfddi_priv *bp = &smc->os; 1064 skfddi_priv *bp = &smc->os;
diff --git a/drivers/net/skge.c b/drivers/net/skge.c
index 543af2044f40..1a1e68549f5c 100644
--- a/drivers/net/skge.c
+++ b/drivers/net/skge.c
@@ -2746,7 +2746,8 @@ static inline int skge_avail(const struct skge_ring *ring)
2746 + (ring->to_clean - ring->to_use) - 1; 2746 + (ring->to_clean - ring->to_use) - 1;
2747} 2747}
2748 2748
2749static int skge_xmit_frame(struct sk_buff *skb, struct net_device *dev) 2749static netdev_tx_t skge_xmit_frame(struct sk_buff *skb,
2750 struct net_device *dev)
2750{ 2751{
2751 struct skge_port *skge = netdev_priv(dev); 2752 struct skge_port *skge = netdev_priv(dev);
2752 struct skge_hw *hw = skge->hw; 2753 struct skge_hw *hw = skge->hw;
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index dd630cf18b4d..c7c0a5b7b53a 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -1574,7 +1574,8 @@ static void sky2_tx_unmap(struct pci_dev *pdev,
1574 * the number of ring elements will probably be less than the number 1574 * the number of ring elements will probably be less than the number
1575 * of list elements used. 1575 * of list elements used.
1576 */ 1576 */
1577static int sky2_xmit_frame(struct sk_buff *skb, struct net_device *dev) 1577static netdev_tx_t sky2_xmit_frame(struct sk_buff *skb,
1578 struct net_device *dev)
1578{ 1579{
1579 struct sky2_port *sky2 = netdev_priv(dev); 1580 struct sky2_port *sky2 = netdev_priv(dev);
1580 struct sky2_hw *hw = sky2->hw; 1581 struct sky2_hw *hw = sky2->hw;
diff --git a/drivers/net/smc9194.c b/drivers/net/smc9194.c
index 0a1b6f401087..934a12012829 100644
--- a/drivers/net/smc9194.c
+++ b/drivers/net/smc9194.c
@@ -299,7 +299,8 @@ static void smc_hardware_send_packet( struct net_device * dev );
299 . to store the packet, I call this routine, which either sends it 299 . to store the packet, I call this routine, which either sends it
300 . now, or generates an interrupt when the card is ready for the 300 . now, or generates an interrupt when the card is ready for the
301 . packet */ 301 . packet */
302static int smc_wait_to_send_packet( struct sk_buff * skb, struct net_device *dev ); 302static netdev_tx_t smc_wait_to_send_packet( struct sk_buff * skb,
303 struct net_device *dev );
303 304
304/* this does a soft reset on the device */ 305/* this does a soft reset on the device */
305static void smc_reset( int ioaddr ); 306static void smc_reset( int ioaddr );
@@ -487,7 +488,8 @@ static void smc_setmulticast( int ioaddr, int count, struct dev_mc_list * addrs
487 . o (NO): Enable interrupts and let the interrupt handler deal with it. 488 . o (NO): Enable interrupts and let the interrupt handler deal with it.
488 . o (YES):Send it now. 489 . o (YES):Send it now.
489*/ 490*/
490static int smc_wait_to_send_packet( struct sk_buff * skb, struct net_device * dev ) 491static netdev_tx_t smc_wait_to_send_packet(struct sk_buff *skb,
492 struct net_device *dev)
491{ 493{
492 struct smc_local *lp = netdev_priv(dev); 494 struct smc_local *lp = netdev_priv(dev);
493 unsigned int ioaddr = dev->base_addr; 495 unsigned int ioaddr = dev->base_addr;
diff --git a/drivers/net/smsc9420.c b/drivers/net/smsc9420.c
index 60abdb1081ad..514311d67b36 100644
--- a/drivers/net/smsc9420.c
+++ b/drivers/net/smsc9420.c
@@ -968,7 +968,8 @@ static void smsc9420_complete_tx(struct net_device *dev)
968 } 968 }
969} 969}
970 970
971static int smsc9420_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) 971static netdev_tx_t smsc9420_hard_start_xmit(struct sk_buff *skb,
972 struct net_device *dev)
972{ 973{
973 struct smsc9420_pdata *pd = netdev_priv(dev); 974 struct smsc9420_pdata *pd = netdev_priv(dev);
974 dma_addr_t mapping; 975 dma_addr_t mapping;
diff --git a/drivers/net/starfire.c b/drivers/net/starfire.c
index 5e7645ee8ab0..a36e2b51e88c 100644
--- a/drivers/net/starfire.c
+++ b/drivers/net/starfire.c
@@ -595,7 +595,7 @@ static int netdev_open(struct net_device *dev);
595static void check_duplex(struct net_device *dev); 595static void check_duplex(struct net_device *dev);
596static void tx_timeout(struct net_device *dev); 596static void tx_timeout(struct net_device *dev);
597static void init_ring(struct net_device *dev); 597static void init_ring(struct net_device *dev);
598static int start_tx(struct sk_buff *skb, struct net_device *dev); 598static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev);
599static irqreturn_t intr_handler(int irq, void *dev_instance); 599static irqreturn_t intr_handler(int irq, void *dev_instance);
600static void netdev_error(struct net_device *dev, int intr_status); 600static void netdev_error(struct net_device *dev, int intr_status);
601static int __netdev_rx(struct net_device *dev, int *quota); 601static int __netdev_rx(struct net_device *dev, int *quota);
@@ -1223,7 +1223,7 @@ static void init_ring(struct net_device *dev)
1223} 1223}
1224 1224
1225 1225
1226static int start_tx(struct sk_buff *skb, struct net_device *dev) 1226static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev)
1227{ 1227{
1228 struct netdev_private *np = netdev_priv(dev); 1228 struct netdev_private *np = netdev_priv(dev);
1229 unsigned int entry; 1229 unsigned int entry;
diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
index d09be481bcc4..e13685a570f4 100644
--- a/drivers/net/sundance.c
+++ b/drivers/net/sundance.c
@@ -415,7 +415,7 @@ static void check_duplex(struct net_device *dev);
415static void netdev_timer(unsigned long data); 415static void netdev_timer(unsigned long data);
416static void tx_timeout(struct net_device *dev); 416static void tx_timeout(struct net_device *dev);
417static void init_ring(struct net_device *dev); 417static void init_ring(struct net_device *dev);
418static int start_tx(struct sk_buff *skb, struct net_device *dev); 418static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev);
419static int reset_tx (struct net_device *dev); 419static int reset_tx (struct net_device *dev);
420static irqreturn_t intr_handler(int irq, void *dev_instance); 420static irqreturn_t intr_handler(int irq, void *dev_instance);
421static void rx_poll(unsigned long data); 421static void rx_poll(unsigned long data);
@@ -1053,7 +1053,7 @@ static void tx_poll (unsigned long data)
1053 return; 1053 return;
1054} 1054}
1055 1055
1056static int 1056static netdev_tx_t
1057start_tx (struct sk_buff *skb, struct net_device *dev) 1057start_tx (struct sk_buff *skb, struct net_device *dev)
1058{ 1058{
1059 struct netdev_private *np = netdev_priv(dev); 1059 struct netdev_private *np = netdev_priv(dev);
diff --git a/drivers/net/sungem.c b/drivers/net/sungem.c
index d2dfe0ab5106..e0dfdd246470 100644
--- a/drivers/net/sungem.c
+++ b/drivers/net/sungem.c
@@ -1015,7 +1015,8 @@ static __inline__ int gem_intme(int entry)
1015 return 0; 1015 return 0;
1016} 1016}
1017 1017
1018static int gem_start_xmit(struct sk_buff *skb, struct net_device *dev) 1018static netdev_tx_t gem_start_xmit(struct sk_buff *skb,
1019 struct net_device *dev)
1019{ 1020{
1020 struct gem *gp = netdev_priv(dev); 1021 struct gem *gp = netdev_priv(dev);
1021 int entry; 1022 int entry;
diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c
index 008bd59fc64b..37d721bbdb35 100644
--- a/drivers/net/sunhme.c
+++ b/drivers/net/sunhme.c
@@ -2252,7 +2252,8 @@ static void happy_meal_tx_timeout(struct net_device *dev)
2252 netif_wake_queue(dev); 2252 netif_wake_queue(dev);
2253} 2253}
2254 2254
2255static int happy_meal_start_xmit(struct sk_buff *skb, struct net_device *dev) 2255static netdev_tx_t happy_meal_start_xmit(struct sk_buff *skb,
2256 struct net_device *dev)
2256{ 2257{
2257 struct happy_meal *hp = netdev_priv(dev); 2258 struct happy_meal *hp = netdev_priv(dev);
2258 int entry; 2259 int entry;
diff --git a/drivers/net/tehuti.c b/drivers/net/tehuti.c
index 3c2679cd196b..918d4c9e49b3 100644
--- a/drivers/net/tehuti.c
+++ b/drivers/net/tehuti.c
@@ -1622,7 +1622,8 @@ static inline int bdx_tx_space(struct bdx_priv *priv)
1622 * the driver. Note: the driver must NOT put the skb in its DMA ring. 1622 * the driver. Note: the driver must NOT put the skb in its DMA ring.
1623 * o NETDEV_TX_LOCKED Locking failed, please retry quickly. 1623 * o NETDEV_TX_LOCKED Locking failed, please retry quickly.
1624 */ 1624 */
1625static int bdx_tx_transmit(struct sk_buff *skb, struct net_device *ndev) 1625static netdev_tx_t bdx_tx_transmit(struct sk_buff *skb,
1626 struct net_device *ndev)
1626{ 1627{
1627 struct bdx_priv *priv = netdev_priv(ndev); 1628 struct bdx_priv *priv = netdev_priv(ndev);
1628 struct txd_fifo *f = &priv->txd_fifo0; 1629 struct txd_fifo *f = &priv->txd_fifo0;
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index a7d14aae258a..9d5c1786c664 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -5135,7 +5135,8 @@ static void tg3_set_txd(struct tg3_napi *tnapi, int entry,
5135/* hard_start_xmit for devices that don't have any bugs and 5135/* hard_start_xmit for devices that don't have any bugs and
5136 * support TG3_FLG2_HW_TSO_2 only. 5136 * support TG3_FLG2_HW_TSO_2 only.
5137 */ 5137 */
5138static int tg3_start_xmit(struct sk_buff *skb, struct net_device *dev) 5138static netdev_tx_t tg3_start_xmit(struct sk_buff *skb,
5139 struct net_device *dev)
5139{ 5140{
5140 struct tg3 *tp = netdev_priv(dev); 5141 struct tg3 *tp = netdev_priv(dev);
5141 u32 len, entry, base_flags, mss; 5142 u32 len, entry, base_flags, mss;
@@ -5251,7 +5252,8 @@ out_unlock:
5251 return NETDEV_TX_OK; 5252 return NETDEV_TX_OK;
5252} 5253}
5253 5254
5254static int tg3_start_xmit_dma_bug(struct sk_buff *, struct net_device *); 5255static netdev_tx_t tg3_start_xmit_dma_bug(struct sk_buff *,
5256 struct net_device *);
5255 5257
5256/* Use GSO to workaround a rare TSO bug that may be triggered when the 5258/* Use GSO to workaround a rare TSO bug that may be triggered when the
5257 * TSO header is greater than 80 bytes. 5259 * TSO header is greater than 80 bytes.
@@ -5290,7 +5292,8 @@ tg3_tso_bug_end:
5290/* hard_start_xmit for devices that have the 4G bug and/or 40-bit bug and 5292/* hard_start_xmit for devices that have the 4G bug and/or 40-bit bug and
5291 * support TG3_FLG2_HW_TSO_1 or firmware TSO only. 5293 * support TG3_FLG2_HW_TSO_1 or firmware TSO only.
5292 */ 5294 */
5293static int tg3_start_xmit_dma_bug(struct sk_buff *skb, struct net_device *dev) 5295static netdev_tx_t tg3_start_xmit_dma_bug(struct sk_buff *skb,
5296 struct net_device *dev)
5294{ 5297{
5295 struct tg3 *tp = netdev_priv(dev); 5298 struct tg3 *tp = netdev_priv(dev);
5296 u32 len, entry, base_flags, mss; 5299 u32 len, entry, base_flags, mss;
diff --git a/drivers/net/tlan.c b/drivers/net/tlan.c
index 70c9ec45d8fb..49e273bceed6 100644
--- a/drivers/net/tlan.c
+++ b/drivers/net/tlan.c
@@ -289,7 +289,7 @@ static void TLan_EisaProbe( void );
289static void TLan_Eisa_Cleanup( void ); 289static void TLan_Eisa_Cleanup( void );
290static int TLan_Init( struct net_device * ); 290static int TLan_Init( struct net_device * );
291static int TLan_Open( struct net_device *dev ); 291static int TLan_Open( struct net_device *dev );
292static int TLan_StartTx( struct sk_buff *, struct net_device *); 292static netdev_tx_t TLan_StartTx( struct sk_buff *, struct net_device *);
293static irqreturn_t TLan_HandleInterrupt( int, void *); 293static irqreturn_t TLan_HandleInterrupt( int, void *);
294static int TLan_Close( struct net_device *); 294static int TLan_Close( struct net_device *);
295static struct net_device_stats *TLan_GetStats( struct net_device *); 295static struct net_device_stats *TLan_GetStats( struct net_device *);
@@ -1083,7 +1083,7 @@ static void TLan_tx_timeout_work(struct work_struct *work)
1083 * 1083 *
1084 **************************************************************/ 1084 **************************************************************/
1085 1085
1086static int TLan_StartTx( struct sk_buff *skb, struct net_device *dev ) 1086static netdev_tx_t TLan_StartTx( struct sk_buff *skb, struct net_device *dev )
1087{ 1087{
1088 TLanPrivateInfo *priv = netdev_priv(dev); 1088 TLanPrivateInfo *priv = netdev_priv(dev);
1089 dma_addr_t tail_list_phys; 1089 dma_addr_t tail_list_phys;
diff --git a/drivers/net/typhoon.c b/drivers/net/typhoon.c
index 2c26b4577e8a..d6d345229fe9 100644
--- a/drivers/net/typhoon.c
+++ b/drivers/net/typhoon.c
@@ -762,7 +762,7 @@ typhoon_tso_fill(struct sk_buff *skb, struct transmit_ring *txRing,
762 tcpd->status = 0; 762 tcpd->status = 0;
763} 763}
764 764
765static int 765static netdev_tx_t
766typhoon_start_tx(struct sk_buff *skb, struct net_device *dev) 766typhoon_start_tx(struct sk_buff *skb, struct net_device *dev)
767{ 767{
768 struct typhoon *tp = netdev_priv(dev); 768 struct typhoon *tp = netdev_priv(dev);
diff --git a/drivers/net/via-rhine.c b/drivers/net/via-rhine.c
index 46eb618bbc90..081402cb05fd 100644
--- a/drivers/net/via-rhine.c
+++ b/drivers/net/via-rhine.c
@@ -408,7 +408,8 @@ static int mdio_read(struct net_device *dev, int phy_id, int location);
408static void mdio_write(struct net_device *dev, int phy_id, int location, int value); 408static void mdio_write(struct net_device *dev, int phy_id, int location, int value);
409static int rhine_open(struct net_device *dev); 409static int rhine_open(struct net_device *dev);
410static void rhine_tx_timeout(struct net_device *dev); 410static void rhine_tx_timeout(struct net_device *dev);
411static int rhine_start_tx(struct sk_buff *skb, struct net_device *dev); 411static netdev_tx_t rhine_start_tx(struct sk_buff *skb,
412 struct net_device *dev);
412static irqreturn_t rhine_interrupt(int irq, void *dev_instance); 413static irqreturn_t rhine_interrupt(int irq, void *dev_instance);
413static void rhine_tx(struct net_device *dev); 414static void rhine_tx(struct net_device *dev);
414static int rhine_rx(struct net_device *dev, int limit); 415static int rhine_rx(struct net_device *dev, int limit);
@@ -1213,7 +1214,8 @@ static void rhine_tx_timeout(struct net_device *dev)
1213 netif_wake_queue(dev); 1214 netif_wake_queue(dev);
1214} 1215}
1215 1216
1216static int rhine_start_tx(struct sk_buff *skb, struct net_device *dev) 1217static netdev_tx_t rhine_start_tx(struct sk_buff *skb,
1218 struct net_device *dev)
1217{ 1219{
1218 struct rhine_private *rp = netdev_priv(dev); 1220 struct rhine_private *rp = netdev_priv(dev);
1219 void __iomem *ioaddr = rp->base; 1221 void __iomem *ioaddr = rp->base;
diff --git a/drivers/net/via-velocity.c b/drivers/net/via-velocity.c
index 47be41a39d35..e56cf6b548d6 100644
--- a/drivers/net/via-velocity.c
+++ b/drivers/net/via-velocity.c
@@ -2465,7 +2465,8 @@ static int velocity_close(struct net_device *dev)
2465 * Called by the networ layer to request a packet is queued to 2465 * Called by the networ layer to request a packet is queued to
2466 * the velocity. Returns zero on success. 2466 * the velocity. Returns zero on success.
2467 */ 2467 */
2468static int velocity_xmit(struct sk_buff *skb, struct net_device *dev) 2468static netdev_tx_t velocity_xmit(struct sk_buff *skb,
2469 struct net_device *dev)
2469{ 2470{
2470 struct velocity_info *vptr = netdev_priv(dev); 2471 struct velocity_info *vptr = netdev_priv(dev);
2471 int qnum = 0; 2472 int qnum = 0;
diff --git a/drivers/net/vxge/vxge-main.c b/drivers/net/vxge/vxge-main.c
index 094d15548a2b..41dccba50c46 100644
--- a/drivers/net/vxge/vxge-main.c
+++ b/drivers/net/vxge/vxge-main.c
@@ -812,7 +812,7 @@ static int vxge_learn_mac(struct vxgedev *vdev, u8 *mac_header)
812 * NOTE: when device cant queue the pkt, just the trans_start variable will 812 * NOTE: when device cant queue the pkt, just the trans_start variable will
813 * not be upadted. 813 * not be upadted.
814*/ 814*/
815static int 815static netdev_tx_t
816vxge_xmit(struct sk_buff *skb, struct net_device *dev) 816vxge_xmit(struct sk_buff *skb, struct net_device *dev)
817{ 817{
818 struct vxge_fifo *fifo = NULL; 818 struct vxge_fifo *fifo = NULL;
diff --git a/drivers/net/yellowfin.c b/drivers/net/yellowfin.c
index 76764237cde6..9509477f61f4 100644
--- a/drivers/net/yellowfin.c
+++ b/drivers/net/yellowfin.c
@@ -347,7 +347,8 @@ static int yellowfin_open(struct net_device *dev);
347static void yellowfin_timer(unsigned long data); 347static void yellowfin_timer(unsigned long data);
348static void yellowfin_tx_timeout(struct net_device *dev); 348static void yellowfin_tx_timeout(struct net_device *dev);
349static void yellowfin_init_ring(struct net_device *dev); 349static void yellowfin_init_ring(struct net_device *dev);
350static int yellowfin_start_xmit(struct sk_buff *skb, struct net_device *dev); 350static netdev_tx_t yellowfin_start_xmit(struct sk_buff *skb,
351 struct net_device *dev);
351static irqreturn_t yellowfin_interrupt(int irq, void *dev_instance); 352static irqreturn_t yellowfin_interrupt(int irq, void *dev_instance);
352static int yellowfin_rx(struct net_device *dev); 353static int yellowfin_rx(struct net_device *dev);
353static void yellowfin_error(struct net_device *dev, int intr_status); 354static void yellowfin_error(struct net_device *dev, int intr_status);
@@ -808,7 +809,8 @@ static void yellowfin_init_ring(struct net_device *dev)
808 return; 809 return;
809} 810}
810 811
811static int yellowfin_start_xmit(struct sk_buff *skb, struct net_device *dev) 812static netdev_tx_t yellowfin_start_xmit(struct sk_buff *skb,
813 struct net_device *dev)
812{ 814{
813 struct yellowfin_private *yp = netdev_priv(dev); 815 struct yellowfin_private *yp = netdev_priv(dev);
814 unsigned entry; 816 unsigned entry;
diff --git a/drivers/net/znet.c b/drivers/net/znet.c
index 7f9e14131a5c..a0384b6f09b6 100644
--- a/drivers/net/znet.c
+++ b/drivers/net/znet.c
@@ -156,7 +156,8 @@ struct netidblk {
156}; 156};
157 157
158static int znet_open(struct net_device *dev); 158static int znet_open(struct net_device *dev);
159static int znet_send_packet(struct sk_buff *skb, struct net_device *dev); 159static netdev_tx_t znet_send_packet(struct sk_buff *skb,
160 struct net_device *dev);
160static irqreturn_t znet_interrupt(int irq, void *dev_id); 161static irqreturn_t znet_interrupt(int irq, void *dev_id);
161static void znet_rx(struct net_device *dev); 162static void znet_rx(struct net_device *dev);
162static int znet_close(struct net_device *dev); 163static int znet_close(struct net_device *dev);
@@ -534,7 +535,7 @@ static void znet_tx_timeout (struct net_device *dev)
534 netif_wake_queue (dev); 535 netif_wake_queue (dev);
535} 536}
536 537
537static int znet_send_packet(struct sk_buff *skb, struct net_device *dev) 538static netdev_tx_t znet_send_packet(struct sk_buff *skb, struct net_device *dev)
538{ 539{
539 int ioaddr = dev->base_addr; 540 int ioaddr = dev->base_addr;
540 struct znet_private *znet = netdev_priv(dev); 541 struct znet_private *znet = netdev_priv(dev);