diff options
Diffstat (limited to 'net/ipv6/addrconf.c')
| -rw-r--r-- | net/ipv6/addrconf.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index 8ea1e36bf8eb..c7852b38e03e 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c | |||
| @@ -578,6 +578,8 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr, int pfxlen, | |||
| 578 | ifa->flags = flags | IFA_F_TENTATIVE; | 578 | ifa->flags = flags | IFA_F_TENTATIVE; |
| 579 | ifa->cstamp = ifa->tstamp = jiffies; | 579 | ifa->cstamp = ifa->tstamp = jiffies; |
| 580 | 580 | ||
| 581 | ifa->rt = rt; | ||
| 582 | |||
| 581 | ifa->idev = idev; | 583 | ifa->idev = idev; |
| 582 | in6_dev_hold(idev); | 584 | in6_dev_hold(idev); |
| 583 | /* For caller */ | 585 | /* For caller */ |
| @@ -603,8 +605,6 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr, int pfxlen, | |||
| 603 | } | 605 | } |
| 604 | #endif | 606 | #endif |
| 605 | 607 | ||
| 606 | ifa->rt = rt; | ||
| 607 | |||
| 608 | in6_ifa_hold(ifa); | 608 | in6_ifa_hold(ifa); |
| 609 | write_unlock(&idev->lock); | 609 | write_unlock(&idev->lock); |
| 610 | out2: | 610 | out2: |
| @@ -1909,11 +1909,11 @@ static int inet6_addr_add(int ifindex, struct in6_addr *pfx, int plen, | |||
| 1909 | ifp = ipv6_add_addr(idev, pfx, plen, scope, ifa_flags); | 1909 | ifp = ipv6_add_addr(idev, pfx, plen, scope, ifa_flags); |
| 1910 | 1910 | ||
| 1911 | if (!IS_ERR(ifp)) { | 1911 | if (!IS_ERR(ifp)) { |
| 1912 | spin_lock(&ifp->lock); | 1912 | spin_lock_bh(&ifp->lock); |
| 1913 | ifp->valid_lft = valid_lft; | 1913 | ifp->valid_lft = valid_lft; |
| 1914 | ifp->prefered_lft = prefered_lft; | 1914 | ifp->prefered_lft = prefered_lft; |
| 1915 | ifp->tstamp = jiffies; | 1915 | ifp->tstamp = jiffies; |
| 1916 | spin_unlock(&ifp->lock); | 1916 | spin_unlock_bh(&ifp->lock); |
| 1917 | 1917 | ||
| 1918 | addrconf_dad_start(ifp, 0); | 1918 | addrconf_dad_start(ifp, 0); |
| 1919 | in6_ifa_put(ifp); | 1919 | in6_ifa_put(ifp); |
