aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/via-rhine.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/via-rhine.c')
-rw-r--r--drivers/net/via-rhine.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/net/via-rhine.c b/drivers/net/via-rhine.c
index 388751aa66e0..4930f9dbc493 100644
--- a/drivers/net/via-rhine.c
+++ b/drivers/net/via-rhine.c
@@ -1209,7 +1209,7 @@ static void rhine_reset_task(struct work_struct *work)
1209 spin_unlock_bh(&rp->lock); 1209 spin_unlock_bh(&rp->lock);
1210 enable_irq(rp->pdev->irq); 1210 enable_irq(rp->pdev->irq);
1211 1211
1212 dev->trans_start = jiffies; 1212 dev->trans_start = jiffies; /* prevent tx timeout */
1213 dev->stats.tx_errors++; 1213 dev->stats.tx_errors++;
1214 netif_wake_queue(dev); 1214 netif_wake_queue(dev);
1215} 1215}
@@ -1294,8 +1294,6 @@ static netdev_tx_t rhine_start_tx(struct sk_buff *skb,
1294 if (rp->cur_tx == rp->dirty_tx + TX_QUEUE_LEN) 1294 if (rp->cur_tx == rp->dirty_tx + TX_QUEUE_LEN)
1295 netif_stop_queue(dev); 1295 netif_stop_queue(dev);
1296 1296
1297 dev->trans_start = jiffies;
1298
1299 spin_unlock_irqrestore(&rp->lock, flags); 1297 spin_unlock_irqrestore(&rp->lock, flags);
1300 1298
1301 if (debug > 4) { 1299 if (debug > 4) {
@@ -1703,11 +1701,11 @@ static void rhine_set_rx_mode(struct net_device *dev)
1703 iowrite32(0xffffffff, ioaddr + MulticastFilter1); 1701 iowrite32(0xffffffff, ioaddr + MulticastFilter1);
1704 rx_mode = 0x0C; 1702 rx_mode = 0x0C;
1705 } else { 1703 } else {
1706 struct dev_mc_list *mclist; 1704 struct netdev_hw_addr *ha;
1707 1705
1708 memset(mc_filter, 0, sizeof(mc_filter)); 1706 memset(mc_filter, 0, sizeof(mc_filter));
1709 netdev_for_each_mc_addr(mclist, dev) { 1707 netdev_for_each_mc_addr(ha, dev) {
1710 int bit_nr = ether_crc(ETH_ALEN, mclist->dmi_addr) >> 26; 1708 int bit_nr = ether_crc(ETH_ALEN, ha->addr) >> 26;
1711 1709
1712 mc_filter[bit_nr >> 5] |= 1 << (bit_nr & 31); 1710 mc_filter[bit_nr >> 5] |= 1 << (bit_nr & 31);
1713 } 1711 }