Commit b354aba0 authored by Dan Williams's avatar Dan Williams

libnvdimm: release ida resources

ida instances allocate some internal memory for ->free_bitmap in
addition to the base 'struct ida'.  Use ida_destroy() to release that
memory at module_exit().
Reported-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
parent acc93d30
...@@ -648,6 +648,9 @@ static __exit void libnvdimm_exit(void) ...@@ -648,6 +648,9 @@ static __exit void libnvdimm_exit(void)
nd_region_exit(); nd_region_exit();
nvdimm_exit(); nvdimm_exit();
nvdimm_bus_exit(); nvdimm_bus_exit();
nd_region_devs_exit();
nvdimm_devs_exit();
ida_destroy(&nd_ida);
} }
MODULE_LICENSE("GPL v2"); MODULE_LICENSE("GPL v2");
......
...@@ -546,3 +546,8 @@ int nvdimm_bus_check_dimm_count(struct nvdimm_bus *nvdimm_bus, int dimm_count) ...@@ -546,3 +546,8 @@ int nvdimm_bus_check_dimm_count(struct nvdimm_bus *nvdimm_bus, int dimm_count)
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(nvdimm_bus_check_dimm_count); EXPORT_SYMBOL_GPL(nvdimm_bus_check_dimm_count);
void __exit nvdimm_devs_exit(void)
{
ida_destroy(&dimm_ida);
}
...@@ -49,6 +49,8 @@ bool is_nd_blk(struct device *dev); ...@@ -49,6 +49,8 @@ bool is_nd_blk(struct device *dev);
struct nvdimm_bus *walk_to_nvdimm_bus(struct device *nd_dev); struct nvdimm_bus *walk_to_nvdimm_bus(struct device *nd_dev);
int __init nvdimm_bus_init(void); int __init nvdimm_bus_init(void);
void nvdimm_bus_exit(void); void nvdimm_bus_exit(void);
void nvdimm_devs_exit(void);
void nd_region_devs_exit(void);
void nd_region_probe_success(struct nvdimm_bus *nvdimm_bus, struct device *dev); void nd_region_probe_success(struct nvdimm_bus *nvdimm_bus, struct device *dev);
struct nd_region; struct nd_region;
void nd_region_create_blk_seed(struct nd_region *nd_region); void nd_region_create_blk_seed(struct nd_region *nd_region);
......
...@@ -793,3 +793,8 @@ struct nd_region *nvdimm_volatile_region_create(struct nvdimm_bus *nvdimm_bus, ...@@ -793,3 +793,8 @@ struct nd_region *nvdimm_volatile_region_create(struct nvdimm_bus *nvdimm_bus,
__func__); __func__);
} }
EXPORT_SYMBOL_GPL(nvdimm_volatile_region_create); EXPORT_SYMBOL_GPL(nvdimm_volatile_region_create);
void __exit nd_region_devs_exit(void)
{
ida_destroy(&region_ida);
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment