On Thu, 2012-08-30 at 18:52 +0200, David Marchand wrote:
Mmm, ok.
But if CONFIG_IPV6_PRIVACY is not selected, then I can't find where the associated in6_dev_put is done for this in6_dev_hold.
Besides, __ipv6_regen_rndid is a "CONFIG_IPV6_PRIVACY-only" stuff.
Okay.
Look at addrconf_ifdown(), line 2850
in6_dev_put(idev);
Will finally remove the last reference
With your patch, I guess there will be a reference problem, and possibly
call in6_dev_finish_destroy() too soon.
You are mistaken, because the reference taken in PRIVACY is at line 421,
right before calling ipv6_regen_rndid()
Look at following commit to have an idea of the underlying problem
http://git.kernel.org/?p=linux/kernel/git/davem/net.git;a=commit;h=144d56e91044181ec0ef67aeca91e9a8b5718348