diff options
Diffstat (limited to 'drivers/net/dm9000.c')
-rw-r--r-- | drivers/net/dm9000.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c index da0985a7a87a..1c67f1138ca7 100644 --- a/drivers/net/dm9000.c +++ b/drivers/net/dm9000.c | |||
@@ -724,8 +724,7 @@ static void | |||
724 | dm9000_hash_table(struct net_device *dev) | 724 | dm9000_hash_table(struct net_device *dev) |
725 | { | 725 | { |
726 | board_info_t *db = netdev_priv(dev); | 726 | board_info_t *db = netdev_priv(dev); |
727 | struct dev_mc_list *mcptr = dev->mc_list; | 727 | struct dev_mc_list *mcptr; |
728 | int mc_cnt = netdev_mc_count(dev); | ||
729 | int i, oft; | 728 | int i, oft; |
730 | u32 hash_val; | 729 | u32 hash_val; |
731 | u16 hash_table[4]; | 730 | u16 hash_table[4]; |
@@ -753,7 +752,7 @@ dm9000_hash_table(struct net_device *dev) | |||
753 | rcr |= RCR_ALL; | 752 | rcr |= RCR_ALL; |
754 | 753 | ||
755 | /* the multicast address in Hash Table : 64 bits */ | 754 | /* the multicast address in Hash Table : 64 bits */ |
756 | for (i = 0; i < mc_cnt; i++, mcptr = mcptr->next) { | 755 | netdev_for_each_mc_addr(mcptr, dev) { |
757 | hash_val = ether_crc_le(6, mcptr->dmi_addr) & 0x3f; | 756 | hash_val = ether_crc_le(6, mcptr->dmi_addr) & 0x3f; |
758 | hash_table[hash_val / 16] |= (u16) 1 << (hash_val % 16); | 757 | hash_table[hash_val / 16] |= (u16) 1 << (hash_val % 16); |
759 | } | 758 | } |