When loopback device is being brought down, then keep the route table entries because they are special. The entries in the local table for linklocal routes and ::1 address should not be purged.
This is a sub optimal solution to the problem and should be replaced by a better fix in future. Signed-off-by: Stephen Hemminger <[email protected]> --- patch versus current net-next tree, but if this acceptable it should be applied to net-2.6 as well. --- a/net/ipv6/addrconf.c 2010-12-16 10:29:34.035408392 -0800 +++ b/net/ipv6/addrconf.c 2010-12-16 10:30:37.366834482 -0800 @@ -2669,7 +2669,9 @@ static int addrconf_ifdown(struct net_de ASSERT_RTNL(); - rt6_ifdown(net, dev); + /* Flush routes if device is being removed or it is not loopback */ + if (how || !(dev->flags & IFF_LOOPBACK)) + rt6_ifdown(net, dev); neigh_ifdown(&nd_tbl, dev); idev = __in6_dev_get(dev); _______________________________________________ stable mailing list [email protected] http://linux.kernel.org/mailman/listinfo/stable
