diff mbox

ipv6: why disable ipv6 on last address removal?

Message ID 20100216152859.GC29736@midget.suse.cz
State RFC, archived
Delegated to: David Miller
Headers show

Commit Message

Jiri Bohac Feb. 16, 2010, 3:28 p.m. UTC
On Mon, Jan 04, 2010 at 10:44:36PM -0800, David Miller wrote:
> From: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
> Date: Wed, 09 Dec 2009 16:39:15 +0900
> 
> > Well, AFAIK, it is basically ancient thing.
> > Some (rather new) paramters are exactly related bringing
> > up each interface.
> > 
> > Such parameters should be set _before_ it is brought up.
> > For now, people can do this using the "default" value.
> 
> I think we should retain inet6 device private structure after
> we allocate it the first time that an ipv6 action occurs for
> the device, exactly so that settings made earlier can be
> retained.

Good, this was what my patch is doing. I still think this is as
simple as:


It does the same thing as NETDEV_DOWN down instead of the current
NETDEV_UNREGISTER-like behaviour. Could this perhaps be tried in
-next?

Thanks,
diff mbox

Patch

--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -2185,7 +2185,7 @@  static int inet6_addr_del(struct net *net, int ifindex, struct in6_addr *pfx,
 			   disable IPv6 on this interface.
 			 */
 			if (idev->addr_list == NULL)
-				addrconf_ifdown(idev->dev, 1);
+				addrconf_ifdown(idev->dev, 0);
 			return 0;
 		}
 	}