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.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c
index 084d78dd1637..c200c2821730 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}
@@ -647,7 +647,6 @@ free_new_rx_ring:
647 (1 << size), 647 (1 << size),
648 new_rx_ring, 648 new_rx_ring,
649 new_ring_dma_addr); 649 new_ring_dma_addr);
650 return;
651} 650}
652 651
653static void pcnet32_purge_rx_ring(struct net_device *dev) 652static void pcnet32_purge_rx_ring(struct net_device *dev)
@@ -1215,7 +1214,6 @@ static void pcnet32_rx_entry(struct net_device *dev,
1215 skb->protocol = eth_type_trans(skb, dev); 1214 skb->protocol = eth_type_trans(skb, dev);
1216 netif_receive_skb(skb); 1215 netif_receive_skb(skb);
1217 dev->stats.rx_packets++; 1216 dev->stats.rx_packets++;
1218 return;
1219} 1217}
1220 1218
1221static int pcnet32_rx(struct net_device *dev, int budget) 1219static int pcnet32_rx(struct net_device *dev, int budget)
@@ -2398,7 +2396,7 @@ static void pcnet32_tx_timeout(struct net_device *dev)
2398 } 2396 }
2399 pcnet32_restart(dev, CSR0_NORMAL); 2397 pcnet32_restart(dev, CSR0_NORMAL);
2400 2398
2401 dev->trans_start = jiffies; 2399 dev->trans_start = jiffies; /* prevent tx timeout */
2402 netif_wake_queue(dev); 2400 netif_wake_queue(dev);
2403 2401
2404 spin_unlock_irqrestore(&lp->lock, flags); 2402 spin_unlock_irqrestore(&lp->lock, flags);
@@ -2449,8 +2447,6 @@ static netdev_tx_t pcnet32_start_xmit(struct sk_buff *skb,
2449 /* Trigger an immediate send poll. */ 2447 /* Trigger an immediate send poll. */
2450 lp->a.write_csr(ioaddr, CSR0, CSR0_INTEN | CSR0_TXPOLL); 2448 lp->a.write_csr(ioaddr, CSR0, CSR0_INTEN | CSR0_TXPOLL);
2451 2449
2452 dev->trans_start = jiffies;
2453
2454 if (lp->tx_ring[(entry + 1) & lp->tx_mod_mask].base != 0) { 2450 if (lp->tx_ring[(entry + 1) & lp->tx_mod_mask].base != 0) {
2455 lp->tx_full = 1; 2451 lp->tx_full = 1;
2456 netif_stop_queue(dev); 2452 netif_stop_queue(dev);
@@ -2590,7 +2586,7 @@ static void pcnet32_load_multicast(struct net_device *dev)
2590 struct pcnet32_private *lp = netdev_priv(dev); 2586 struct pcnet32_private *lp = netdev_priv(dev);
2591 volatile struct pcnet32_init_block *ib = lp->init_block; 2587 volatile struct pcnet32_init_block *ib = lp->init_block;
2592 volatile __le16 *mcast_table = (__le16 *)ib->filter; 2588 volatile __le16 *mcast_table = (__le16 *)ib->filter;
2593 struct dev_mc_list *dmi; 2589 struct netdev_hw_addr *ha;
2594 unsigned long ioaddr = dev->base_addr; 2590 unsigned long ioaddr = dev->base_addr;
2595 char *addrs; 2591 char *addrs;
2596 int i; 2592 int i;
@@ -2611,8 +2607,8 @@ static void pcnet32_load_multicast(struct net_device *dev)
2611 ib->filter[1] = 0; 2607 ib->filter[1] = 0;
2612 2608
2613 /* Add addresses */ 2609 /* Add addresses */
2614 netdev_for_each_mc_addr(dmi, dev) { 2610 netdev_for_each_mc_addr(ha, dev) {
2615 addrs = dmi->dmi_addr; 2611 addrs = ha->addr;
2616 2612
2617 /* multicast address? */ 2613 /* multicast address? */
2618 if (!(*addrs & 1)) 2614 if (!(*addrs & 1))
@@ -2625,7 +2621,6 @@ static void pcnet32_load_multicast(struct net_device *dev)
2625 for (i = 0; i < 4; i++) 2621 for (i = 0; i < 4; i++)
2626 lp->a.write_csr(ioaddr, PCNET32_MC_FILTER + i, 2622 lp->a.write_csr(ioaddr, PCNET32_MC_FILTER + i,
2627 le16_to_cpu(mcast_table[i])); 2623 le16_to_cpu(mcast_table[i]));
2628 return;
2629} 2624}
2630 2625
2631/* 2626/*