Commit b3fdd9f1 authored by Yasuyuki Kozakai's avatar Yasuyuki Kozakai Committed by David S. Miller
Browse files

[IPV6] IP6TUNNEL: Delete all tunnel device when unloading module.

parent ea659e07
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
@@ -1149,6 +1149,20 @@ fail:
	return err;
}

static void __exit ip6ip6_destroy_tunnels(void)
{
	int h;
	struct ip6_tnl *t;

	for (h = 0; h < HASH_SIZE; h++) {
		while ((t = tnls_r_l[h]) != NULL)
			unregister_netdevice(t->dev);
	}

	t = tnls_wc[0];
	unregister_netdevice(t->dev);
}

/**
 * ip6_tunnel_cleanup - free resources and unregister protocol
 **/
@@ -1158,7 +1172,9 @@ static void __exit ip6_tunnel_cleanup(void)
	if (xfrm6_tunnel_deregister(&ip6ip6_handler))
		printk(KERN_INFO "ip6ip6 close: can't deregister tunnel\n");

	unregister_netdev(ip6ip6_fb_tnl_dev);
	rtnl_lock();
	ip6ip6_destroy_tunnels();
	rtnl_unlock();
}

module_init(ip6_tunnel_init);