diff options
author | Jiri Pirko <jpirko@redhat.com> | 2010-02-18 00:42:54 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-02-18 14:47:49 -0800 |
commit | 5508590c193661bc1484ad7b952af5fceacea40d (patch) | |
tree | 8b7d1655f63034725127b9456afa5bad4bb6e83a /drivers/net/sfc | |
parent | 2a0d18f97cc15d57ad0c93259a3df4cb72c5a28b (diff) | |
download | kernel_samsung_crespo-5508590c193661bc1484ad7b952af5fceacea40d.zip kernel_samsung_crespo-5508590c193661bc1484ad7b952af5fceacea40d.tar.gz kernel_samsung_crespo-5508590c193661bc1484ad7b952af5fceacea40d.tar.bz2 |
net: convert multiple drivers to use netdev_for_each_mc_addr, part2
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/sfc')
-rw-r--r-- | drivers/net/sfc/efx.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/net/sfc/efx.c b/drivers/net/sfc/efx.c index dc58d9f..88f2fb1 100644 --- a/drivers/net/sfc/efx.c +++ b/drivers/net/sfc/efx.c @@ -1602,11 +1602,10 @@ static int efx_set_mac_address(struct net_device *net_dev, void *data) static void efx_set_multicast_list(struct net_device *net_dev) { struct efx_nic *efx = netdev_priv(net_dev); - struct dev_mc_list *mc_list = net_dev->mc_list; + struct dev_mc_list *mc_list; union efx_multicast_hash *mc_hash = &efx->multicast_hash; u32 crc; int bit; - int i; efx->promiscuous = !!(net_dev->flags & IFF_PROMISC); @@ -1615,11 +1614,10 @@ static void efx_set_multicast_list(struct net_device *net_dev) memset(mc_hash, 0xff, sizeof(*mc_hash)); } else { memset(mc_hash, 0x00, sizeof(*mc_hash)); - for (i = 0; i < netdev_mc_count(net_dev); i++) { + netdev_for_each_mc_addr(mc_list, net_dev) { crc = ether_crc_le(ETH_ALEN, mc_list->dmi_addr); bit = crc & (EFX_MCAST_HASH_ENTRIES - 1); set_bit_le(bit, mc_hash->byte); - mc_list = mc_list->next; } /* Broadcast packets go through the multicast hash filter. |