--- /dev/null
+From stable-bounces@linux.kernel.org Wed Feb 15 14:45:50 2006
+Date: Wed, 15 Feb 2006 23:42:14 +0100
+From: Henrik Brix Andersen <brix@gentoo.org>
+To: stable@kernel.org
+Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>, dsd@gentoo.org, Juha-Matti Tapio <jmtapio@verkkotelakka.net>, "David S. Miller" <davem@davemloft.net>
+Subject: [IPV6]: Address autoconfiguration does not work after device down/up cycle
+
+From: Kristian Slavov <kristian.slavov@nomadiclab.com>
+
+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>
+---
+
+ net/ipv6/addrconf.c | 3 +++
+ 1 files changed, 3 insertions(+)
+
+--- linux-2.6.15.4.orig/net/ipv6/addrconf.c
++++ linux-2.6.15.4/net/ipv6/addrconf.c
+@@ -2164,6 +2164,9 @@ static int addrconf_notify(struct notifi
+ dev->name);
+ break;
+ }
++
++ if (idev)
++ idev->if_flags |= IF_READY;
+ } else {
+ if (!netif_carrier_ok(dev)) {
+ /* device is still not ready. */