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