diff options
Diffstat (limited to 'drivers/net/fec_mpc52xx.c')
-rw-r--r-- | drivers/net/fec_mpc52xx.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/net/fec_mpc52xx.c b/drivers/net/fec_mpc52xx.c index 10903b75802f..0dbd7219bbde 100644 --- a/drivers/net/fec_mpc52xx.c +++ b/drivers/net/fec_mpc52xx.c | |||
@@ -575,19 +575,16 @@ static void mpc52xx_fec_set_multicast_list(struct net_device *dev) | |||
575 | out_be32(&fec->gaddr2, 0xffffffff); | 575 | out_be32(&fec->gaddr2, 0xffffffff); |
576 | } else { | 576 | } else { |
577 | u32 crc; | 577 | u32 crc; |
578 | int i; | ||
579 | struct dev_mc_list *dmi; | 578 | struct dev_mc_list *dmi; |
580 | u32 gaddr1 = 0x00000000; | 579 | u32 gaddr1 = 0x00000000; |
581 | u32 gaddr2 = 0x00000000; | 580 | u32 gaddr2 = 0x00000000; |
582 | 581 | ||
583 | dmi = dev->mc_list; | 582 | netdev_for_each_mc_addr(dmi, dev) { |
584 | for (i=0; i<netdev_mc_count(dev); i++) { | ||
585 | crc = ether_crc_le(6, dmi->dmi_addr) >> 26; | 583 | crc = ether_crc_le(6, dmi->dmi_addr) >> 26; |
586 | if (crc >= 32) | 584 | if (crc >= 32) |
587 | gaddr1 |= 1 << (crc-32); | 585 | gaddr1 |= 1 << (crc-32); |
588 | else | 586 | else |
589 | gaddr2 |= 1 << crc; | 587 | gaddr2 |= 1 << crc; |
590 | dmi = dmi->next; | ||
591 | } | 588 | } |
592 | out_be32(&fec->gaddr1, gaddr1); | 589 | out_be32(&fec->gaddr1, gaddr1); |
593 | out_be32(&fec->gaddr2, gaddr2); | 590 | out_be32(&fec->gaddr2, gaddr2); |