[IB] Add idr_destroy() calls on module unload
Add idr_destroy() calls to the module_exit() functions of the four IB driver modules that use idrs, so we don't leak idr_layer_cache objects when these modules are unloaded. Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
parent
e7d311da9c
commit
5d7edb3c1a
4 changed files with 10 additions and 0 deletions
|
@ -3323,6 +3323,7 @@ static void __exit ib_cm_cleanup(void)
|
||||||
flush_workqueue(cm.wq);
|
flush_workqueue(cm.wq);
|
||||||
destroy_workqueue(cm.wq);
|
destroy_workqueue(cm.wq);
|
||||||
ib_unregister_client(&cm_client);
|
ib_unregister_client(&cm_client);
|
||||||
|
idr_destroy(&cm.local_id_table);
|
||||||
}
|
}
|
||||||
|
|
||||||
module_init(ib_cm_init);
|
module_init(ib_cm_init);
|
||||||
|
|
|
@ -975,6 +975,7 @@ static int __init ib_sa_init(void)
|
||||||
static void __exit ib_sa_cleanup(void)
|
static void __exit ib_sa_cleanup(void)
|
||||||
{
|
{
|
||||||
ib_unregister_client(&sa_client);
|
ib_unregister_client(&sa_client);
|
||||||
|
idr_destroy(&query_idr);
|
||||||
}
|
}
|
||||||
|
|
||||||
module_init(ib_sa_init);
|
module_init(ib_sa_init);
|
||||||
|
|
|
@ -1320,6 +1320,7 @@ static void __exit ib_ucm_cleanup(void)
|
||||||
class_destroy(ib_ucm_class);
|
class_destroy(ib_ucm_class);
|
||||||
cdev_del(&ib_ucm_cdev);
|
cdev_del(&ib_ucm_cdev);
|
||||||
unregister_chrdev_region(IB_UCM_DEV, 1);
|
unregister_chrdev_region(IB_UCM_DEV, 1);
|
||||||
|
idr_destroy(&ctx_id_table);
|
||||||
}
|
}
|
||||||
|
|
||||||
module_init(ib_ucm_init);
|
module_init(ib_ucm_init);
|
||||||
|
|
|
@ -762,6 +762,13 @@ static void __exit ib_uverbs_cleanup(void)
|
||||||
unregister_filesystem(&uverbs_event_fs);
|
unregister_filesystem(&uverbs_event_fs);
|
||||||
class_unregister(&uverbs_class);
|
class_unregister(&uverbs_class);
|
||||||
unregister_chrdev_region(IB_UVERBS_BASE_DEV, IB_UVERBS_MAX_DEVICES);
|
unregister_chrdev_region(IB_UVERBS_BASE_DEV, IB_UVERBS_MAX_DEVICES);
|
||||||
|
idr_destroy(&ib_uverbs_pd_idr);
|
||||||
|
idr_destroy(&ib_uverbs_mr_idr);
|
||||||
|
idr_destroy(&ib_uverbs_mw_idr);
|
||||||
|
idr_destroy(&ib_uverbs_ah_idr);
|
||||||
|
idr_destroy(&ib_uverbs_cq_idr);
|
||||||
|
idr_destroy(&ib_uverbs_qp_idr);
|
||||||
|
idr_destroy(&ib_uverbs_srq_idr);
|
||||||
}
|
}
|
||||||
|
|
||||||
module_init(ib_uverbs_init);
|
module_init(ib_uverbs_init);
|
||||||
|
|
Reference in a new issue