diff options
Diffstat (limited to 'drivers/net/lib82596.c')
-rw-r--r-- | drivers/net/lib82596.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/lib82596.c b/drivers/net/lib82596.c index 371b58b1d151..443c39a3732f 100644 --- a/drivers/net/lib82596.c +++ b/drivers/net/lib82596.c | |||
@@ -1396,15 +1396,16 @@ static void set_multicast_list(struct net_device *dev) | |||
1396 | cmd->cmd.command = SWAP16(CmdMulticastList); | 1396 | cmd->cmd.command = SWAP16(CmdMulticastList); |
1397 | cmd->mc_cnt = SWAP16(netdev_mc_count(dev) * 6); | 1397 | cmd->mc_cnt = SWAP16(netdev_mc_count(dev) * 6); |
1398 | cp = cmd->mc_addrs; | 1398 | cp = cmd->mc_addrs; |
1399 | for (dmi = dev->mc_list; | 1399 | netdev_for_each_mc_addr(dmi, dev) { |
1400 | cnt && dmi != NULL; | 1400 | if (!cnt--) |
1401 | dmi = dmi->next, cnt--, cp += 6) { | 1401 | break; |
1402 | memcpy(cp, dmi->dmi_addr, 6); | 1402 | memcpy(cp, dmi->dmi_addr, 6); |
1403 | if (i596_debug > 1) | 1403 | if (i596_debug > 1) |
1404 | DEB(DEB_MULTI, | 1404 | DEB(DEB_MULTI, |
1405 | printk(KERN_DEBUG | 1405 | printk(KERN_DEBUG |
1406 | "%s: Adding address %pM\n", | 1406 | "%s: Adding address %pM\n", |
1407 | dev->name, cp)); | 1407 | dev->name, cp)); |
1408 | cp += 6; | ||
1408 | } | 1409 | } |
1409 | DMA_WBACK_INV(dev, &dma->mc_cmd, sizeof(struct mc_cmd)); | 1410 | DMA_WBACK_INV(dev, &dma->mc_cmd, sizeof(struct mc_cmd)); |
1410 | i596_add_cmd(dev, &cmd->cmd); | 1411 | i596_add_cmd(dev, &cmd->cmd); |