rds: fix memory leak error
When the function register_netdevice_notifier fails, the memory allocated by kmem_cache_create should be freed by the function kmem_cache_destroy. Cc: Joe Jin <joe.jin@oracle.com> Cc: Junxiao Bi <junxiao.bi@oracle.com> Signed-off-by: Zhu Yanjun <yanjun.zhu@oracle.com> Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com> Acked-by: Sowmini Varadhan <sowmini.varadhan@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1158632b5a
commit
3b5923f079
|
@ -641,12 +641,12 @@ static int rds_tcp_init(void)
|
|||
ret = register_netdevice_notifier(&rds_tcp_dev_notifier);
|
||||
if (ret) {
|
||||
pr_warn("could not register rds_tcp_dev_notifier\n");
|
||||
goto out;
|
||||
goto out_slab;
|
||||
}
|
||||
|
||||
ret = register_pernet_subsys(&rds_tcp_net_ops);
|
||||
if (ret)
|
||||
goto out_slab;
|
||||
goto out_notifier;
|
||||
|
||||
ret = rds_tcp_recv_init();
|
||||
if (ret)
|
||||
|
@ -664,9 +664,10 @@ out_recv:
|
|||
rds_tcp_recv_exit();
|
||||
out_pernet:
|
||||
unregister_pernet_subsys(&rds_tcp_net_ops);
|
||||
out_slab:
|
||||
out_notifier:
|
||||
if (unregister_netdevice_notifier(&rds_tcp_dev_notifier))
|
||||
pr_warn("could not unregister rds_tcp_dev_notifier\n");
|
||||
out_slab:
|
||||
kmem_cache_destroy(rds_tcp_conn_slab);
|
||||
out:
|
||||
return ret;
|
||||
|
|
Loading…
Reference in New Issue