diff options
author | Stephen Hemminger <shemminger@vyatta.com> | 2010-05-24 11:33:00 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-08-02 10:29:41 -0700 |
commit | ec6aa42401e6812b909d10bf89f571fb85c21139 (patch) | |
tree | 3fdd3e97d0542f71c9065113a974818c8a770800 /net | |
parent | 0f5eb5d25df6e95ec2f31a4be2a7312327562a0e (diff) |
IPv6: only notify protocols if address is completely gone
(cherry picked from commit 8595805aafc8b077e01804c9a3668e9aa3510e89)
The notifier for address down should only be called if address is completely
gone, not just being marked as tentative on link transition. 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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'net')
-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 12e95580755..844ffc5a742 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -2729,7 +2729,9 @@ static int addrconf_ifdown(struct net_device *dev, int how) write_unlock_bh(&idev->lock); __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); |