]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
[PATCH] Address autoconfiguration does not work after device down/up cycle
authorKristian Slavov <kristian.slavov@nomadiclab.com>
Wed, 15 Feb 2006 22:42:14 +0000 (23:42 +0100)
committerChris Wright <chrisw@sous-sol.org>
Wed, 1 Mar 2006 22:36:34 +0000 (14:36 -0800)
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>
net/ipv6/addrconf.c

index a60585fd85ad0207ff28d3345b6b53839a15a5b3..3558d64fd8a6bb4d5e5801b84dafb2d3a0f24d2f 100644 (file)
@@ -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. */