diff options
Diffstat (limited to 'drivers/net/starfire.c')
-rw-r--r-- | drivers/net/starfire.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/net/starfire.c b/drivers/net/starfire.c index 6dfa69899019..8a6d27cdc0bd 100644 --- a/drivers/net/starfire.c +++ b/drivers/net/starfire.c | |||
@@ -1766,7 +1766,7 @@ static void set_rx_mode(struct net_device *dev) | |||
1766 | struct netdev_private *np = netdev_priv(dev); | 1766 | struct netdev_private *np = netdev_priv(dev); |
1767 | void __iomem *ioaddr = np->base; | 1767 | void __iomem *ioaddr = np->base; |
1768 | u32 rx_mode = MinVLANPrio; | 1768 | u32 rx_mode = MinVLANPrio; |
1769 | struct dev_mc_list *mclist; | 1769 | struct netdev_hw_addr *ha; |
1770 | int i; | 1770 | int i; |
1771 | #ifdef VLAN_SUPPORT | 1771 | #ifdef VLAN_SUPPORT |
1772 | 1772 | ||
@@ -1804,8 +1804,8 @@ static void set_rx_mode(struct net_device *dev) | |||
1804 | /* Use the 16 element perfect filter, skip first two entries. */ | 1804 | /* Use the 16 element perfect filter, skip first two entries. */ |
1805 | void __iomem *filter_addr = ioaddr + PerfFilterTable + 2 * 16; | 1805 | void __iomem *filter_addr = ioaddr + PerfFilterTable + 2 * 16; |
1806 | __be16 *eaddrs; | 1806 | __be16 *eaddrs; |
1807 | netdev_for_each_mc_addr(mclist, dev) { | 1807 | netdev_for_each_mc_addr(ha, dev) { |
1808 | eaddrs = (__be16 *)mclist->dmi_addr; | 1808 | eaddrs = (__be16 *) ha->addr; |
1809 | writew(be16_to_cpu(eaddrs[2]), filter_addr); filter_addr += 4; | 1809 | writew(be16_to_cpu(eaddrs[2]), filter_addr); filter_addr += 4; |
1810 | writew(be16_to_cpu(eaddrs[1]), filter_addr); filter_addr += 4; | 1810 | writew(be16_to_cpu(eaddrs[1]), filter_addr); filter_addr += 4; |
1811 | writew(be16_to_cpu(eaddrs[0]), filter_addr); filter_addr += 8; | 1811 | writew(be16_to_cpu(eaddrs[0]), filter_addr); filter_addr += 8; |
@@ -1825,10 +1825,10 @@ static void set_rx_mode(struct net_device *dev) | |||
1825 | __le16 mc_filter[32] __attribute__ ((aligned(sizeof(long)))); /* Multicast hash filter */ | 1825 | __le16 mc_filter[32] __attribute__ ((aligned(sizeof(long)))); /* Multicast hash filter */ |
1826 | 1826 | ||
1827 | memset(mc_filter, 0, sizeof(mc_filter)); | 1827 | memset(mc_filter, 0, sizeof(mc_filter)); |
1828 | netdev_for_each_mc_addr(mclist, dev) { | 1828 | netdev_for_each_mc_addr(ha, dev) { |
1829 | /* The chip uses the upper 9 CRC bits | 1829 | /* The chip uses the upper 9 CRC bits |
1830 | as index into the hash table */ | 1830 | as index into the hash table */ |
1831 | int bit_nr = ether_crc_le(ETH_ALEN, mclist->dmi_addr) >> 23; | 1831 | int bit_nr = ether_crc_le(ETH_ALEN, ha->addr) >> 23; |
1832 | __le32 *fptr = (__le32 *) &mc_filter[(bit_nr >> 4) & ~1]; | 1832 | __le32 *fptr = (__le32 *) &mc_filter[(bit_nr >> 4) & ~1]; |
1833 | 1833 | ||
1834 | *fptr |= cpu_to_le32(1 << (bit_nr & 31)); | 1834 | *fptr |= cpu_to_le32(1 << (bit_nr & 31)); |