mirror of
https://github.com/torvalds/linux.git
synced 2024-12-24 11:51:27 +00:00
[IPV6] IP6TUNNEL: Delete all tunnel device when unloading module.
Signed-off-by: Yasuyuki Kozakai <yasuyuki.kozakai@toshiba.co.jp> Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
This commit is contained in:
parent
ea659e0775
commit
b3fdd9f115
@ -1149,6 +1149,20 @@ fail:
|
|||||||
return err;
|
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
|
* 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))
|
if (xfrm6_tunnel_deregister(&ip6ip6_handler))
|
||||||
printk(KERN_INFO "ip6ip6 close: can't deregister tunnel\n");
|
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);
|
module_init(ip6_tunnel_init);
|
||||||
|
Loading…
Reference in New Issue
Block a user