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: Johannes Thumshirn <jthumshirn@suse.de> Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
Родитель
acc93d30d7
Коммит
b354aba016
|
@ -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)
|
||||||
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);
|
||||||
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,
|
||||||
__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(®ion_ida);
|
||||||
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче