vxlan: fix out of order operation on module removal

If vxlan is removed with active vxlan's it would crash because
rtnl_link_unregister (which calls vxlan_dellink), was invoked
before unregister_pernet_device (which calls vxlan_stop).

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
This commit is contained in:
Stephen Hemminger 2013-06-17 14:16:09 -07:00
parent 3717348840
commit b715398407

View file

@ -1771,8 +1771,8 @@ late_initcall(vxlan_init_module);
static void __exit vxlan_cleanup_module(void) static void __exit vxlan_cleanup_module(void)
{ {
rtnl_link_unregister(&vxlan_link_ops);
unregister_pernet_device(&vxlan_net_ops); unregister_pernet_device(&vxlan_net_ops);
rtnl_link_unregister(&vxlan_link_ops);
rcu_barrier(); rcu_barrier();
} }
module_exit(vxlan_cleanup_module); module_exit(vxlan_cleanup_module);