RDS: fix rds_tcp_init() error path
[firefly-linux-kernel-4.4.55.git] / net / rds / tcp.c
index 9d6ddbacd8750e22b05986b37e40a8fe1bb95865..18e50a8fc05f2e31b09778ffc4a72a362aa4ed1c 100644 (file)
@@ -421,7 +421,7 @@ static int rds_tcp_init(void)
 
        ret = rds_tcp_recv_init();
        if (ret)
-               goto out_slab;
+               goto out_pernet;
 
        ret = rds_trans_register(&rds_tcp_transport);
        if (ret)
@@ -433,8 +433,9 @@ static int rds_tcp_init(void)
 
 out_recv:
        rds_tcp_recv_exit();
-out_slab:
+out_pernet:
        unregister_pernet_subsys(&rds_tcp_net_ops);
+out_slab:
        kmem_cache_destroy(rds_tcp_conn_slab);
 out:
        return ret;