aboutsummaryrefslogtreecommitdiff
path: root/net/ipv6/addrconf.c
diff options
context:
space:
mode:
authorAmit Pundir <amit.pundir@linaro.org>2015-01-12 11:43:21 +0530
committerAmit Pundir <amit.pundir@linaro.org>2015-01-12 11:43:21 +0530
commit43e6989f92b421c7e234ffd1e0b590e014ce24f2 (patch)
tree7e62a7a27835d4615b561dc99cdfe3b3a72e3d94 /net/ipv6/addrconf.c
parent54d6df91aea686c8c46095256d8c27d3db26c4e8 (diff)
parent49536e1f387afc5b42f447d382c3ea3fe4817520 (diff)
Merge branch 'upstream/android-3.10' into linaro-android-3.10-lsk
Diffstat (limited to 'net/ipv6/addrconf.c')
-rw-r--r--net/ipv6/addrconf.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index e1381119a6d8..165cee964e75 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -1525,7 +1525,9 @@ int ipv6_chk_addr(struct net *net, const struct in6_addr *addr,
if (!net_eq(dev_net(ifp->idev->dev), net))
continue;
if (ipv6_addr_equal(&ifp->addr, addr) &&
- !(ifp->flags&IFA_F_TENTATIVE) &&
+ (!(ifp->flags&IFA_F_TENTATIVE) ||
+ (ipv6_use_optimistic_addr(ifp->idev) &&
+ ifp->flags&IFA_F_OPTIMISTIC)) &&
(dev == NULL || ifp->idev->dev == dev ||
!(ifp->scope&(IFA_LINK|IFA_HOST) || strict))) {
rcu_read_unlock_bh();