diff options
author | stephen hemminger <shemminger@vyatta.com> | 2010-04-12 05:41:34 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-04-13 02:29:28 -0700 |
commit | 8595805aafc8b077e01804c9a3668e9aa3510e89 (patch) | |
tree | 28079955dec368156072596ee77817ba0ef40da9 /net/ipv6 | |
parent | d1f84c63a465d6ba16955930519b7f68c550cae1 (diff) | |
download | linux-8595805aafc8b077e01804c9a3668e9aa3510e89.tar.gz linux-8595805aafc8b077e01804c9a3668e9aa3510e89.tar.bz2 linux-8595805aafc8b077e01804c9a3668e9aa3510e89.zip |
IPv6: only notify protocols if address is compeletely gone
The notifier for address down should only be called if address is completely
gone, not just being marked as tentative on link transistion. The code
in net-next would case bonding/sctp/s390 to see address disappear on link
down, but they would never see it reappear on link up.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/addrconf.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index a0175edb6589..7cba8845242f 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -2715,7 +2715,9 @@ static int addrconf_ifdown(struct net_device *dev, int how) } __ipv6_ifa_notify(RTM_DELADDR, ifa); - atomic_notifier_call_chain(&inet6addr_chain, NETDEV_DOWN, ifa); + if (ifa->dead) + atomic_notifier_call_chain(&inet6addr_chain, + NETDEV_DOWN, ifa); in6_ifa_put(ifa); write_lock_bh(&idev->lock); |