diff options
Diffstat (limited to 'drivers/net/yellowfin.c')
-rw-r--r-- | drivers/net/yellowfin.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/yellowfin.c b/drivers/net/yellowfin.c index 8b231b30fd12..5c880240a642 100644 --- a/drivers/net/yellowfin.c +++ b/drivers/net/yellowfin.c | |||
@@ -1301,15 +1301,16 @@ static void set_rx_mode(struct net_device *dev) | |||
1301 | iowrite16(cfg_value & ~0x1000, ioaddr + Cnfg); | 1301 | iowrite16(cfg_value & ~0x1000, ioaddr + Cnfg); |
1302 | if (dev->flags & IFF_PROMISC) { /* Set promiscuous. */ | 1302 | if (dev->flags & IFF_PROMISC) { /* Set promiscuous. */ |
1303 | iowrite16(0x000F, ioaddr + AddrMode); | 1303 | iowrite16(0x000F, ioaddr + AddrMode); |
1304 | } else if ((dev->mc_count > 64) || (dev->flags & IFF_ALLMULTI)) { | 1304 | } else if ((netdev_mc_count(dev) > 64) || |
1305 | (dev->flags & IFF_ALLMULTI)) { | ||
1305 | /* Too many to filter well, or accept all multicasts. */ | 1306 | /* Too many to filter well, or accept all multicasts. */ |
1306 | iowrite16(0x000B, ioaddr + AddrMode); | 1307 | iowrite16(0x000B, ioaddr + AddrMode); |
1307 | } else if (dev->mc_count > 0) { /* Must use the multicast hash table. */ | 1308 | } else if (!netdev_mc_empty(dev)) { /* Must use the multicast hash table. */ |
1308 | struct dev_mc_list *mclist; | 1309 | struct dev_mc_list *mclist; |
1309 | u16 hash_table[4]; | 1310 | u16 hash_table[4]; |
1310 | int i; | 1311 | int i; |
1311 | memset(hash_table, 0, sizeof(hash_table)); | 1312 | memset(hash_table, 0, sizeof(hash_table)); |
1312 | for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count; | 1313 | for (i = 0, mclist = dev->mc_list; mclist && i < netdev_mc_count(dev); |
1313 | i++, mclist = mclist->next) { | 1314 | i++, mclist = mclist->next) { |
1314 | unsigned int bit; | 1315 | unsigned int bit; |
1315 | 1316 | ||