diff options
Diffstat (limited to 'net/ipv4/devinet.c')
| -rw-r--r-- | net/ipv4/devinet.c | 16 | 
1 files changed, 8 insertions, 8 deletions
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c index 37b3c188d8b..bc19bd06dd0 100644 --- a/net/ipv4/devinet.c +++ b/net/ipv4/devinet.c @@ -1134,15 +1134,15 @@ static void inetdev_send_gratuitous_arp(struct net_device *dev,  					struct in_device *in_dev)  { -	struct in_ifaddr *ifa = in_dev->ifa_list; - -	if (!ifa) -		return; +	struct in_ifaddr *ifa; -	arp_send(ARPOP_REQUEST, ETH_P_ARP, -		 ifa->ifa_local, dev, -		 ifa->ifa_local, NULL, -		 dev->dev_addr, NULL); +	for (ifa = in_dev->ifa_list; ifa; +	     ifa = ifa->ifa_next) { +		arp_send(ARPOP_REQUEST, ETH_P_ARP, +			 ifa->ifa_local, dev, +			 ifa->ifa_local, NULL, +			 dev->dev_addr, NULL); +	}  }  /* Called only under RTNL semaphore */  |