aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorstephen hemminger <shemminger@vyatta.com>2010-04-12 01:41:34 -0400
committerDavid S. Miller <davem@davemloft.net>2010-04-13 05:29:28 -0400
commit8595805aafc8b077e01804c9a3668e9aa3510e89 (patch)
tree28079955dec368156072596ee77817ba0ef40da9 /net
parentd1f84c63a465d6ba16955930519b7f68c550cae1 (diff)
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')
-rw-r--r--net/ipv6/addrconf.c4
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)
2715 } 2715 }
2716 2716
2717 __ipv6_ifa_notify(RTM_DELADDR, ifa); 2717 __ipv6_ifa_notify(RTM_DELADDR, ifa);
2718 atomic_notifier_call_chain(&inet6addr_chain, NETDEV_DOWN, ifa); 2718 if (ifa->dead)
2719 atomic_notifier_call_chain(&inet6addr_chain,
2720 NETDEV_DOWN, ifa);
2719 in6_ifa_put(ifa); 2721 in6_ifa_put(ifa);
2720 2722
2721 write_lock_bh(&idev->lock); 2723 write_lock_bh(&idev->lock);