diff options
Diffstat (limited to 'net/ipv6/ndisc.c')
| -rw-r--r-- | net/ipv6/ndisc.c | 5 | 
1 files changed, 5 insertions, 0 deletions
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index b3cea200c85e..f61a5b613b52 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c @@ -566,6 +566,11 @@ static void ndisc_send_unsol_na(struct net_device *dev)  	read_lock_bh(&idev->lock);  	list_for_each_entry(ifa, &idev->addr_list, if_list) { +		/* skip tentative addresses until dad completes */ +		if (ifa->flags & IFA_F_TENTATIVE && +		    !(ifa->flags & IFA_F_OPTIMISTIC)) +			continue; +  		ndisc_send_na(dev, &in6addr_linklocal_allnodes, &ifa->addr,  			      /*router=*/ !!idev->cnf.forwarding,  			      /*solicited=*/ false, /*override=*/ true,  |