diff options
Diffstat (limited to 'drivers/net/forcedeth.c')
| -rw-r--r-- | drivers/net/forcedeth.c | 6 | 
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c index 3eb713b014f..ca05e566202 100644 --- a/drivers/net/forcedeth.c +++ b/drivers/net/forcedeth.c @@ -3095,7 +3095,7 @@ static void nv_set_multicast(struct net_device *dev)  	} else {  		pff |= NVREG_PFF_MYADDR; -		if (dev->flags & IFF_ALLMULTI || dev->mc_list) { +		if (dev->flags & IFF_ALLMULTI || !netdev_mc_empty(dev)) {  			u32 alwaysOff[2];  			u32 alwaysOn[2]; @@ -3105,8 +3105,7 @@ static void nv_set_multicast(struct net_device *dev)  			} else {  				struct dev_mc_list *walk; -				walk = dev->mc_list; -				while (walk != NULL) { +				netdev_for_each_mc_addr(walk, dev) {  					u32 a, b;  					a = le32_to_cpu(*(__le32 *) walk->dmi_addr);  					b = le16_to_cpu(*(__le16 *) (&walk->dmi_addr[4])); @@ -3114,7 +3113,6 @@ static void nv_set_multicast(struct net_device *dev)  					alwaysOff[0] &= ~a;  					alwaysOn[1] &= b;  					alwaysOff[1] &= ~b; -					walk = walk->next;  				}  			}  			addr[0] = alwaysOn[0];  |