|
@@ -1909,11 +1909,11 @@ static int inet6_addr_add(int ifindex, struct in6_addr *pfx, int plen,
|
|
ifp = ipv6_add_addr(idev, pfx, plen, scope, ifa_flags);
|
|
ifp = ipv6_add_addr(idev, pfx, plen, scope, ifa_flags);
|
|
|
|
|
|
if (!IS_ERR(ifp)) {
|
|
if (!IS_ERR(ifp)) {
|
|
- spin_lock(&ifp->lock);
|
|
|
|
|
|
+ spin_lock_bh(&ifp->lock);
|
|
ifp->valid_lft = valid_lft;
|
|
ifp->valid_lft = valid_lft;
|
|
ifp->prefered_lft = prefered_lft;
|
|
ifp->prefered_lft = prefered_lft;
|
|
ifp->tstamp = jiffies;
|
|
ifp->tstamp = jiffies;
|
|
- spin_unlock(&ifp->lock);
|
|
|
|
|
|
+ spin_unlock_bh(&ifp->lock);
|
|
|
|
|
|
addrconf_dad_start(ifp, 0);
|
|
addrconf_dad_start(ifp, 0);
|
|
in6_ifa_put(ifp);
|
|
in6_ifa_put(ifp);
|