IPv6: Drop the temporary address regen_timer
authorJiri Bohac <jbohac@suse.cz>
Thu, 13 Oct 2016 16:50:02 +0000 (18:50 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 14 Oct 2016 14:59:15 +0000 (10:59 -0400)
commit9d6280da39c04832d6abf5f4ecc8175c9aad91c0
tree8380fe8fe657e4eadf99780e55158d1d0e2b1dba
parentfc791b6335152c5278dc4a4991bcb2d329f806f9
IPv6: Drop the temporary address regen_timer

The randomized interface identifier (rndid) was periodically updated from
the regen_timer timer. Simplify the code by updating the rndid only when
needed by ipv6_try_regen_rndid().

This makes the follow-up DESYNC_FACTOR fix much simpler.  Also it fixes a
reference counting error in this error path, where an in6_dev_put was
missing:
err = addrconf_sysctl_register(ndev);
if (err) {
ipv6_mc_destroy_dev(ndev);
-               del_timer(&ndev->regen_timer);
snmp6_unregister_dev(ndev);
goto err_release;

Signed-off-by: Jiri Bohac <jbohac@suse.cz>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/if_inet6.h
net/ipv6/addrconf.c