diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2010-05-10 08:01:31 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-05-10 08:01:31 -0400 |
commit | 1ae5dc342ac78d7a42965fd1f323815f6f5ef2c1 (patch) | |
tree | d1955a7639e99832590df26466a34d5786a880ae /drivers/net/pcnet32.c | |
parent | 2b0b05ddc04b6d45e71cd36405df512075786f1e (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/pcnet32.c')
-rw-r--r-- | drivers/net/pcnet32.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c index a2254f749a9a..566fd89da861 100644 --- a/drivers/net/pcnet32.c +++ b/drivers/net/pcnet32.c | |||
@@ -448,7 +448,7 @@ static void pcnet32_netif_stop(struct net_device *dev) | |||
448 | { | 448 | { |
449 | struct pcnet32_private *lp = netdev_priv(dev); | 449 | struct pcnet32_private *lp = netdev_priv(dev); |
450 | 450 | ||
451 | dev->trans_start = jiffies; | 451 | dev->trans_start = jiffies; /* prevent tx timeout */ |
452 | napi_disable(&lp->napi); | 452 | napi_disable(&lp->napi); |
453 | netif_tx_disable(dev); | 453 | netif_tx_disable(dev); |
454 | } | 454 | } |
@@ -2398,7 +2398,7 @@ static void pcnet32_tx_timeout(struct net_device *dev) | |||
2398 | } | 2398 | } |
2399 | pcnet32_restart(dev, CSR0_NORMAL); | 2399 | pcnet32_restart(dev, CSR0_NORMAL); |
2400 | 2400 | ||
2401 | dev->trans_start = jiffies; | 2401 | dev->trans_start = jiffies; /* prevent tx timeout */ |
2402 | netif_wake_queue(dev); | 2402 | netif_wake_queue(dev); |
2403 | 2403 | ||
2404 | spin_unlock_irqrestore(&lp->lock, flags); | 2404 | spin_unlock_irqrestore(&lp->lock, flags); |
@@ -2449,8 +2449,6 @@ static netdev_tx_t pcnet32_start_xmit(struct sk_buff *skb, | |||
2449 | /* Trigger an immediate send poll. */ | 2449 | /* Trigger an immediate send poll. */ |
2450 | lp->a.write_csr(ioaddr, CSR0, CSR0_INTEN | CSR0_TXPOLL); | 2450 | lp->a.write_csr(ioaddr, CSR0, CSR0_INTEN | CSR0_TXPOLL); |
2451 | 2451 | ||
2452 | dev->trans_start = jiffies; | ||
2453 | |||
2454 | if (lp->tx_ring[(entry + 1) & lp->tx_mod_mask].base != 0) { | 2452 | if (lp->tx_ring[(entry + 1) & lp->tx_mod_mask].base != 0) { |
2455 | lp->tx_full = 1; | 2453 | lp->tx_full = 1; |
2456 | netif_stop_queue(dev); | 2454 | netif_stop_queue(dev); |