aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sun3lance.c
diff options
context:
space:
mode:
authorEric Dumazet <eric.dumazet@gmail.com>2010-05-10 08:01:31 -0400
committerDavid S. Miller <davem@davemloft.net>2010-05-10 08:01:31 -0400
commit1ae5dc342ac78d7a42965fd1f323815f6f5ef2c1 (patch)
treed1955a7639e99832590df26466a34d5786a880ae /drivers/net/sun3lance.c
parent2b0b05ddc04b6d45e71cd36405df512075786f1e (diff)
net: trans_start cleanups
Now that core network takes care of trans_start updates, dont do it in drivers themselves, if possible. Drivers can avoid one cache miss (on dev->trans_start) in their start_xmit() handler. Exceptions are NETIF_F_LLTX drivers Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/sun3lance.c')
-rw-r--r--drivers/net/sun3lance.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/net/sun3lance.c b/drivers/net/sun3lance.c
index 1694ca5bfb4..358c22f9acb 100644
--- a/drivers/net/sun3lance.c
+++ b/drivers/net/sun3lance.c
@@ -523,8 +523,8 @@ static int lance_start_xmit( struct sk_buff *skb, struct net_device *dev )
523 523
524 /* Transmitter timeout, serious problems. */ 524 /* Transmitter timeout, serious problems. */
525 if (netif_queue_stopped(dev)) { 525 if (netif_queue_stopped(dev)) {
526 int tickssofar = jiffies - dev->trans_start; 526 int tickssofar = jiffies - dev_trans_start(dev);
527 if (tickssofar < 20) 527 if (tickssofar < HZ/5)
528 return NETDEV_TX_BUSY; 528 return NETDEV_TX_BUSY;
529 529
530 DPRINTK( 1, ( "%s: transmit timed out, status %04x, resetting.\n", 530 DPRINTK( 1, ( "%s: transmit timed out, status %04x, resetting.\n",
@@ -559,7 +559,6 @@ static int lance_start_xmit( struct sk_buff *skb, struct net_device *dev )
559 REGA( CSR0 ) = CSR0_INEA | CSR0_INIT | CSR0_STRT; 559 REGA( CSR0 ) = CSR0_INEA | CSR0_INIT | CSR0_STRT;
560 560
561 netif_start_queue(dev); 561 netif_start_queue(dev);
562 dev->trans_start = jiffies;
563 562
564 return NETDEV_TX_OK; 563 return NETDEV_TX_OK;
565 } 564 }
@@ -637,8 +636,7 @@ static int lance_start_xmit( struct sk_buff *skb, struct net_device *dev )
637 AREG = CSR0; 636 AREG = CSR0;
638 DPRINTK( 2, ( "%s: lance_start_xmit() exiting, csr0 %4.4x.\n", 637 DPRINTK( 2, ( "%s: lance_start_xmit() exiting, csr0 %4.4x.\n",
639 dev->name, DREG )); 638 dev->name, DREG ));
640 dev->trans_start = jiffies; 639 dev_kfree_skb(skb);
641 dev_kfree_skb( skb );
642 640
643 lp->lock = 0; 641 lp->lock = 0;
644 if ((MEM->tx_head[(entry+1) & TX_RING_MOD_MASK].flag & TMD1_OWN) == 642 if ((MEM->tx_head[(entry+1) & TX_RING_MOD_MASK].flag & TMD1_OWN) ==