]> git.karo-electronics.de Git - linux-beck.git/blobdiff - net/ipv6/addrconf.c
ipv6: fix missing in6_ifa_put in addrconf
[linux-beck.git] / net / ipv6 / addrconf.c
index 2fc35b32df9eacb3c1dcebf153700b5056bc9689..23cc8e1ce8d4995a551ca93d98434e9150ad1740 100644 (file)
@@ -2758,13 +2758,13 @@ static int addrconf_ifdown(struct net_device *dev, int how)
                        ifa->state = INET6_IFADDR_STATE_DEAD;
                        spin_unlock_bh(&ifa->state_lock);
 
-                       if (state == INET6_IFADDR_STATE_DEAD) {
-                               in6_ifa_put(ifa);
-                       } else {
+                       if (state != INET6_IFADDR_STATE_DEAD) {
                                __ipv6_ifa_notify(RTM_DELADDR, ifa);
                                atomic_notifier_call_chain(&inet6addr_chain,
                                                           NETDEV_DOWN, ifa);
                        }
+
+                       in6_ifa_put(ifa);
                        write_lock_bh(&idev->lock);
                }
        }