diff options
Diffstat (limited to 'drivers/net/au1000_eth.c')
-rw-r--r-- | drivers/net/au1000_eth.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/net/au1000_eth.c b/drivers/net/au1000_eth.c index 9337d023919c..a66b06aa1f0b 100644 --- a/drivers/net/au1000_eth.c +++ b/drivers/net/au1000_eth.c | |||
@@ -1018,16 +1018,13 @@ static void au1000_multicast_list(struct net_device *dev) | |||
1018 | aup->mac->control &= ~MAC_PROMISCUOUS; | 1018 | aup->mac->control &= ~MAC_PROMISCUOUS; |
1019 | printk(KERN_INFO "%s: Pass all multicast\n", dev->name); | 1019 | printk(KERN_INFO "%s: Pass all multicast\n", dev->name); |
1020 | } else { | 1020 | } else { |
1021 | int i; | ||
1022 | struct dev_mc_list *mclist; | 1021 | struct dev_mc_list *mclist; |
1023 | u32 mc_filter[2]; /* Multicast hash filter */ | 1022 | u32 mc_filter[2]; /* Multicast hash filter */ |
1024 | 1023 | ||
1025 | mc_filter[1] = mc_filter[0] = 0; | 1024 | mc_filter[1] = mc_filter[0] = 0; |
1026 | for (i = 0, mclist = dev->mc_list; mclist && i < netdev_mc_count(dev); | 1025 | netdev_for_each_mc_addr(mclist, dev) |
1027 | i++, mclist = mclist->next) { | ||
1028 | set_bit(ether_crc(ETH_ALEN, mclist->dmi_addr)>>26, | 1026 | set_bit(ether_crc(ETH_ALEN, mclist->dmi_addr)>>26, |
1029 | (long *)mc_filter); | 1027 | (long *)mc_filter); |
1030 | } | ||
1031 | aup->mac->multi_hash_high = mc_filter[1]; | 1028 | aup->mac->multi_hash_high = mc_filter[1]; |
1032 | aup->mac->multi_hash_low = mc_filter[0]; | 1029 | aup->mac->multi_hash_low = mc_filter[0]; |
1033 | aup->mac->control &= ~MAC_PROMISCUOUS; | 1030 | aup->mac->control &= ~MAC_PROMISCUOUS; |