diff options
Diffstat (limited to 'drivers/net/starfire.c')
-rw-r--r-- | drivers/net/starfire.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/drivers/net/starfire.c b/drivers/net/starfire.c index 6dfa6989901..74b7ae76906 100644 --- a/drivers/net/starfire.c +++ b/drivers/net/starfire.c | |||
@@ -1173,7 +1173,7 @@ static void tx_timeout(struct net_device *dev) | |||
1173 | 1173 | ||
1174 | /* Trigger an immediate transmit demand. */ | 1174 | /* Trigger an immediate transmit demand. */ |
1175 | 1175 | ||
1176 | dev->trans_start = jiffies; | 1176 | dev->trans_start = jiffies; /* prevent tx timeout */ |
1177 | np->stats.tx_errors++; | 1177 | np->stats.tx_errors++; |
1178 | netif_wake_queue(dev); | 1178 | netif_wake_queue(dev); |
1179 | } | 1179 | } |
@@ -1221,8 +1221,6 @@ static void init_ring(struct net_device *dev) | |||
1221 | 1221 | ||
1222 | for (i = 0; i < TX_RING_SIZE; i++) | 1222 | for (i = 0; i < TX_RING_SIZE; i++) |
1223 | memset(&np->tx_info[i], 0, sizeof(np->tx_info[i])); | 1223 | memset(&np->tx_info[i], 0, sizeof(np->tx_info[i])); |
1224 | |||
1225 | return; | ||
1226 | } | 1224 | } |
1227 | 1225 | ||
1228 | 1226 | ||
@@ -1312,8 +1310,6 @@ static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev) | |||
1312 | if ((np->cur_tx - np->dirty_tx) + 4 > TX_RING_SIZE) | 1310 | if ((np->cur_tx - np->dirty_tx) + 4 > TX_RING_SIZE) |
1313 | netif_stop_queue(dev); | 1311 | netif_stop_queue(dev); |
1314 | 1312 | ||
1315 | dev->trans_start = jiffies; | ||
1316 | |||
1317 | return NETDEV_TX_OK; | 1313 | return NETDEV_TX_OK; |
1318 | } | 1314 | } |
1319 | 1315 | ||
@@ -1766,7 +1762,7 @@ static void set_rx_mode(struct net_device *dev) | |||
1766 | struct netdev_private *np = netdev_priv(dev); | 1762 | struct netdev_private *np = netdev_priv(dev); |
1767 | void __iomem *ioaddr = np->base; | 1763 | void __iomem *ioaddr = np->base; |
1768 | u32 rx_mode = MinVLANPrio; | 1764 | u32 rx_mode = MinVLANPrio; |
1769 | struct dev_mc_list *mclist; | 1765 | struct netdev_hw_addr *ha; |
1770 | int i; | 1766 | int i; |
1771 | #ifdef VLAN_SUPPORT | 1767 | #ifdef VLAN_SUPPORT |
1772 | 1768 | ||
@@ -1804,8 +1800,8 @@ static void set_rx_mode(struct net_device *dev) | |||
1804 | /* Use the 16 element perfect filter, skip first two entries. */ | 1800 | /* Use the 16 element perfect filter, skip first two entries. */ |
1805 | void __iomem *filter_addr = ioaddr + PerfFilterTable + 2 * 16; | 1801 | void __iomem *filter_addr = ioaddr + PerfFilterTable + 2 * 16; |
1806 | __be16 *eaddrs; | 1802 | __be16 *eaddrs; |
1807 | netdev_for_each_mc_addr(mclist, dev) { | 1803 | netdev_for_each_mc_addr(ha, dev) { |
1808 | eaddrs = (__be16 *)mclist->dmi_addr; | 1804 | eaddrs = (__be16 *) ha->addr; |
1809 | writew(be16_to_cpu(eaddrs[2]), filter_addr); filter_addr += 4; | 1805 | writew(be16_to_cpu(eaddrs[2]), filter_addr); filter_addr += 4; |
1810 | writew(be16_to_cpu(eaddrs[1]), filter_addr); filter_addr += 4; | 1806 | writew(be16_to_cpu(eaddrs[1]), filter_addr); filter_addr += 4; |
1811 | writew(be16_to_cpu(eaddrs[0]), filter_addr); filter_addr += 8; | 1807 | writew(be16_to_cpu(eaddrs[0]), filter_addr); filter_addr += 8; |
@@ -1825,10 +1821,10 @@ static void set_rx_mode(struct net_device *dev) | |||
1825 | __le16 mc_filter[32] __attribute__ ((aligned(sizeof(long)))); /* Multicast hash filter */ | 1821 | __le16 mc_filter[32] __attribute__ ((aligned(sizeof(long)))); /* Multicast hash filter */ |
1826 | 1822 | ||
1827 | memset(mc_filter, 0, sizeof(mc_filter)); | 1823 | memset(mc_filter, 0, sizeof(mc_filter)); |
1828 | netdev_for_each_mc_addr(mclist, dev) { | 1824 | netdev_for_each_mc_addr(ha, dev) { |
1829 | /* The chip uses the upper 9 CRC bits | 1825 | /* The chip uses the upper 9 CRC bits |
1830 | as index into the hash table */ | 1826 | as index into the hash table */ |
1831 | int bit_nr = ether_crc_le(ETH_ALEN, mclist->dmi_addr) >> 23; | 1827 | int bit_nr = ether_crc_le(ETH_ALEN, ha->addr) >> 23; |
1832 | __le32 *fptr = (__le32 *) &mc_filter[(bit_nr >> 4) & ~1]; | 1828 | __le32 *fptr = (__le32 *) &mc_filter[(bit_nr >> 4) & ~1]; |
1833 | 1829 | ||
1834 | *fptr |= cpu_to_le32(1 << (bit_nr & 31)); | 1830 | *fptr |= cpu_to_le32(1 << (bit_nr & 31)); |