summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Slavov <kristian.slavov@nomadiclab.com>2006-02-15 23:42:14 +0100
committerChris Wright <chrisw@sous-sol.org>2006-03-01 14:36:34 -0800
commitf7c4f6a095e9ae25e17681ddc1f9b09d090790de (patch)
tree2d09292b8862df2a4263a296ce72eda8c5c8e6fa
parentdcfd28a95dc4bb4868f867f118b4de0d0ced900c (diff)
[PATCH] Address autoconfiguration does not work after device down/up cycle
If you set network interface down and up again, the IPv6 address autoconfiguration does not work. 'ip addr' shows that the link-local address is in tentative state. We don't even react to periodical router advertisements. During NETDEV_DOWN we clear IF_READY, and we don't set it back in NETDEV_UP. While starting to perform DAD on the link-local address, we notice that the device is not in IF_READY, and we abort autoconfiguration process (which would eventually send router solicitations). Acked-by: Juha-Matti Tapio <jmtapio@verkkotelakka.net> Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Chris Wright <chrisw@sous-sol.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--net/ipv6/addrconf.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index a60585fd85ad..3558d64fd8a6 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -2164,6 +2164,9 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event,
dev->name);
break;
}
+
+ if (idev)
+ idev->if_flags |= IF_READY;
} else {
if (!netif_carrier_ok(dev)) {
/* device is still not ready. */