nvme-rdma: fix module_init (theoretical) error path
Subsystems (2)
Sagi Grimberg
maintainerPATCH 1/2 nvme-rdma: fix module_init (theoretical) error path
If nvmf_register_transport happened to fail
(it can't, but theoretically) we leak memory.
--- drivers/nvme/host/rdma.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-)
drivers/nvme/host/rdma.c +13 -5
@@ -2068,12 +2068,20 @@ static int __init nvme_rdma_init_module(void)return -ENOMEM ; ret =ib_register_client (&nvme_rdma_ib_client); -if (ret) { -destroy_workqueue (nvme_rdma_wq); -return ret; - } +if (ret) + goto err_destroy_wq; + + ret =nvmf_register_transport (&nvme_rdma_transport); +if (ret) + goto err_unreg_client; -return nvmf_register_transport (&nvme_rdma_transport); +return 0 ; + +err_unreg_client: +ib_unregister_client (&nvme_rdma_ib_client); +err_destroy_wq: +destroy_workqueue (nvme_rdma_wq); +return ret; } static void __exit nvme_rdma_cleanup_module(void)
Signature · 1 line
2.7.4
Sagi Grimberg
maintainerPATCH 2/2 nvme-loop: fix module_init (theoretical) error path
if nvmf_register_transport happend to fail, we
need to nvmet_unregister_transport as well.
--- drivers/nvme/target/loop.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
drivers/nvme/target/loop.c +6 -1
@@ -736,7 +736,12 @@ static int __init nvme_loop_init_module(void) ret =nvmet_register_transport (&nvme_loop_ops);if (ret)return ret; -return nvmf_register_transport (&nvme_loop_transport); + + ret =nvmf_register_transport (&nvme_loop_transport); +if (ret) +nvmet_unregister_transport (&nvme_loop_ops); + +return ret; } static void __exit nvme_loop_cleanup_module(void)
Signature · 1 line
2.7.4
PATCH 2/2 nvme-loop: fix module_init (theoretical) error path
Quoted 5 lines · Sagi Grimberg
if
nvmf_register_transporthappend to fail, we
need tonvmet_unregister_transportas well.Signed-off-by Sagi Grimberg <sagi at grimberg.me>---
Looks good,
Reviewed-by: Johannes Thumshirn <jthumshirn at suse.de>
Signature · 6 lines
Johannes Thumshirn Storage jthumshirn at suse.de +49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 N?rnberg GF: Felix Imend?rffer, Jane Smithard, Graham Norton HRB 21284 (AG N?rnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850
PATCH 2/2 nvme-loop: fix module_init (theoretical) error path
In reply to Sagi GrimbergLooks good,
PATCH 1/2 nvme-rdma: fix module_init (theoretical) error path
In reply to Sagi GrimbergQuoted 5 lines · Sagi Grimberg
If
nvmf_register_transporthappened to fail
(it can't, but theoretically) we leak memory.Signed-off-by Sagi Grimberg <sagi at grimberg.me>---
Looks good,
Reviewed-by: Johannes Thumshirn <jthumshirn at suse.de>
Signature · 6 lines
Johannes Thumshirn Storage jthumshirn at suse.de +49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 N?rnberg GF: Felix Imend?rffer, Jane Smithard, Graham Norton HRB 21284 (AG N?rnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850
PATCH 1/2 nvme-rdma: fix module_init (theoretical) error path
In reply to Sagi GrimbergLooks good,