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>
This commit is contained in:
Jiri Bohac
2016-10-13 18:50:02 +02:00
committed by David S. Miller
parent fc791b6335
commit 9d6280da39
2 changed files with 9 additions and 53 deletions

View File

@@ -191,7 +191,6 @@ struct inet6_dev {
int dead;
u8 rndid[8];
struct timer_list regen_timer;
struct list_head tempaddr_list;
struct in6_addr token;