aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/fec_mpc52xx.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/fec_mpc52xx.c')
-rw-r--r--drivers/net/fec_mpc52xx.c5
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);