--- linux-2.6.3/net/ipv6/addrconf.c.orig 2004-03-09 15:46:33.000000000 +0100 +++ linux-2.6.3/net/ipv6/addrconf.c 2004-03-09 16:04:54.000000000 +0100 @@ -2898,6 +2898,11 @@ static int inet6_dump_ifaddr(struct sk_b goto done; } #endif + /* You can't delete these via RTM_DELADDR, so we shouldn't + * display them here. Otherwise "ip addr flush" will loop + * forever trying to delete ff02::1 etc. + * --okir */ +#if 0 /* multicast address */ for (ifmca = idev->mc_list; ifmca; ifmca = ifmca->next, ip_idx++) { @@ -2918,6 +2923,7 @@ static int inet6_dump_ifaddr(struct sk_b cb->nlh->nlmsg_seq, RTM_NEWADDR)) <= 0) goto done; } +#endif read_unlock_bh(&idev->lock); in6_dev_put(idev); }