]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - net/tipc/core.c
Merge tag 'drm-next-2020-02-07' of git://anongit.freedesktop.org/drm/drm
[linux.git] / net / tipc / core.c
index 7532a00ac73d74fbf6619d5db352e7bb0d27e74d..4f6dc74adf455c8bbcf523be2c64432c6341ce03 100644 (file)
@@ -148,14 +148,6 @@ static int __init tipc_init(void)
        sysctl_tipc_rmem[1] = RCVBUF_DEF;
        sysctl_tipc_rmem[2] = RCVBUF_MAX;
 
-       err = tipc_netlink_start();
-       if (err)
-               goto out_netlink;
-
-       err = tipc_netlink_compat_start();
-       if (err)
-               goto out_netlink_compat;
-
        err = tipc_register_sysctl();
        if (err)
                goto out_sysctl;
@@ -180,8 +172,21 @@ static int __init tipc_init(void)
        if (err)
                goto out_bearer;
 
+       err = tipc_netlink_start();
+       if (err)
+               goto out_netlink;
+
+       err = tipc_netlink_compat_start();
+       if (err)
+               goto out_netlink_compat;
+
        pr_info("Started in single node mode\n");
        return 0;
+
+out_netlink_compat:
+       tipc_netlink_stop();
+out_netlink:
+       tipc_bearer_cleanup();
 out_bearer:
        unregister_pernet_subsys(&tipc_pernet_pre_exit_ops);
 out_register_pernet_subsys:
@@ -193,23 +198,19 @@ static int __init tipc_init(void)
 out_pernet:
        tipc_unregister_sysctl();
 out_sysctl:
-       tipc_netlink_compat_stop();
-out_netlink_compat:
-       tipc_netlink_stop();
-out_netlink:
        pr_err("Unable to start in single node mode\n");
        return err;
 }
 
 static void __exit tipc_exit(void)
 {
+       tipc_netlink_compat_stop();
+       tipc_netlink_stop();
        tipc_bearer_cleanup();
        unregister_pernet_subsys(&tipc_pernet_pre_exit_ops);
        unregister_pernet_device(&tipc_topsrv_net_ops);
        tipc_socket_stop();
        unregister_pernet_device(&tipc_net_ops);
-       tipc_netlink_stop();
-       tipc_netlink_compat_stop();
        tipc_unregister_sysctl();
 
        pr_info("Deactivated\n");