aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/pcnet32.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/pcnet32.c')
-rw-r--r--drivers/net/pcnet32.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c
index 084d78dd1637..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);
@@ -2590,7 +2588,7 @@ static void pcnet32_load_multicast(struct net_device *dev)
2590 struct pcnet32_private *lp = netdev_priv(dev); 2588 struct pcnet32_private *lp = netdev_priv(dev);
2591 volatile struct pcnet32_init_block *ib = lp->init_block; 2589 volatile struct pcnet32_init_block *ib = lp->init_block;
2592 volatile __le16 *mcast_table = (__le16 *)ib->filter; 2590 volatile __le16 *mcast_table = (__le16 *)ib->filter;
2593 struct dev_mc_list *dmi; 2591 struct netdev_hw_addr *ha;
2594 unsigned long ioaddr = dev->base_addr; 2592 unsigned long ioaddr = dev->base_addr;
2595 char *addrs; 2593 char *addrs;
2596 int i; 2594 int i;
@@ -2611,8 +2609,8 @@ static void pcnet32_load_multicast(struct net_device *dev)
2611 ib->filter[1] = 0; 2609 ib->filter[1] = 0;
2612 2610
2613 /* Add addresses */ 2611 /* Add addresses */
2614 netdev_for_each_mc_addr(dmi, dev) { 2612 netdev_for_each_mc_addr(ha, dev) {
2615 addrs = dmi->dmi_addr; 2613 addrs = ha->addr;
2616 2614
2617 /* multicast address? */ 2615 /* multicast address? */
2618 if (!(*addrs & 1)) 2616 if (!(*addrs & 1))