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 8b231b30fd1..5c880240a64 100644 --- a/drivers/net/yellowfin.c +++ b/drivers/net/yellowfin.c @@ -1301,15 +1301,16 @@ static void set_rx_mode(struct net_device *dev)  	iowrite16(cfg_value & ~0x1000, ioaddr + Cnfg);  	if (dev->flags & IFF_PROMISC) {			/* Set promiscuous. */  		iowrite16(0x000F, ioaddr + AddrMode); -	} else if ((dev->mc_count > 64)  ||  (dev->flags & IFF_ALLMULTI)) { +	} else if ((netdev_mc_count(dev) > 64) || +		   (dev->flags & IFF_ALLMULTI)) {  		/* Too many to filter well, or accept all multicasts. */  		iowrite16(0x000B, ioaddr + AddrMode); -	} else if (dev->mc_count > 0) { /* Must use the multicast hash table. */ +	} else if (!netdev_mc_empty(dev)) { /* Must use the multicast hash table. */  		struct dev_mc_list *mclist;  		u16 hash_table[4];  		int i;  		memset(hash_table, 0, sizeof(hash_table)); -		for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count; +		for (i = 0, mclist = dev->mc_list; mclist && i < netdev_mc_count(dev);  			 i++, mclist = mclist->next) {  			unsigned int bit;  |