Commit 2a0d18f9 authored by Jiri Pirko's avatar Jiri Pirko Committed by David S. Miller

smsc911x: convert to use netdev_for_each_mc_addr

also removed unnecessary checks
Signed-off-by: default avatarJiri Pirko <jpirko@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 59ce25d9
...@@ -1383,29 +1383,20 @@ static void smsc911x_set_multicast_list(struct net_device *dev) ...@@ -1383,29 +1383,20 @@ static void smsc911x_set_multicast_list(struct net_device *dev)
/* Enabling specific multicast addresses */ /* Enabling specific multicast addresses */
unsigned int hash_high = 0; unsigned int hash_high = 0;
unsigned int hash_low = 0; unsigned int hash_low = 0;
unsigned int count = 0; struct dev_mc_list *mc_list;
struct dev_mc_list *mc_list = dev->mc_list;
pdata->set_bits_mask = MAC_CR_HPFILT_; pdata->set_bits_mask = MAC_CR_HPFILT_;
pdata->clear_bits_mask = (MAC_CR_PRMS_ | MAC_CR_MCPAS_); pdata->clear_bits_mask = (MAC_CR_PRMS_ | MAC_CR_MCPAS_);
while (mc_list) { netdev_for_each_mc_addr(mc_list, dev) {
count++; unsigned int bitnum = smsc911x_hash(mc_list->dmi_addr);
if ((mc_list->dmi_addrlen) == ETH_ALEN) { unsigned int mask = 0x01 << (bitnum & 0x1F);
unsigned int bitnum =
smsc911x_hash(mc_list->dmi_addr); if (bitnum & 0x20)
unsigned int mask = 0x01 << (bitnum & 0x1F); hash_high |= mask;
if (bitnum & 0x20) else
hash_high |= mask; hash_low |= mask;
else
hash_low |= mask;
} else {
SMSC_WARNING(DRV, "dmi_addrlen != 6");
}
mc_list = mc_list->next;
} }
if (count != (unsigned int)netdev_mc_count(dev))
SMSC_WARNING(DRV, "mc_count != dev->mc_count");
pdata->hashhi = hash_high; pdata->hashhi = hash_high;
pdata->hashlo = hash_low; pdata->hashlo = hash_low;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment