summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Slavov <kristian.slavov@nomadiclab.com>2006-02-08 16:10:53 -0800
committerDavid S. Miller <davem@sunset.davemloft.net>2006-02-08 16:13:28 -0800
commit9908104935325bd6beba67d637b6f5396d47075c (patch)
treeec3bf2213993e21598403e4aeb68ba1e92d536b5
parent4b88f09364e94b05b66fb1441131e8460495a2f8 (diff)
downloadlinux-next-9908104935325bd6beba67d637b6f5396d47075c.tar.gz
[IPV6]: 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>
-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 1db50487916b..b7d8822c1be4 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -2165,6 +2165,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. */