diff options
author | Johannes Thumshirn <jthumshirn@suse.de> | 2018-03-14 14:25:06 -0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2018-03-15 10:17:21 -0400 |
commit | 71cfdd0bad3ad91680e6b82cac634154cf56376e (patch) | |
tree | 6eb9fe253a8fa414bd87a20bda10843828a5ebe1 | |
parent | 1526f9e2ac1df62106c15a18fd6895258c579c90 (diff) |
libnvdimm: provide module_nd_driver wrapper
Provide a module_nd_driver() wrapper over simple nd_driver_register()
nd_driver_unregister() combinations in module_init() and module_exit()
respectively.
Note an explicit nd_driver_unregister() had to be implemented as nd
bus drivers did call device_unregister() direcly in the module_exit()
function.
Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
-rw-r--r-- | include/linux/nd.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/nd.h b/include/linux/nd.h index 5dc6b695437d..43c181a6add5 100644 --- a/include/linux/nd.h +++ b/include/linux/nd.h | |||
@@ -180,6 +180,12 @@ struct nd_region; | |||
180 | void nvdimm_region_notify(struct nd_region *nd_region, enum nvdimm_event event); | 180 | void nvdimm_region_notify(struct nd_region *nd_region, enum nvdimm_event event); |
181 | int __must_check __nd_driver_register(struct nd_device_driver *nd_drv, | 181 | int __must_check __nd_driver_register(struct nd_device_driver *nd_drv, |
182 | struct module *module, const char *mod_name); | 182 | struct module *module, const char *mod_name); |
183 | static inline void nd_driver_unregister(struct nd_device_driver *drv) | ||
184 | { | ||
185 | driver_unregister(&drv->drv); | ||
186 | } | ||
183 | #define nd_driver_register(driver) \ | 187 | #define nd_driver_register(driver) \ |
184 | __nd_driver_register(driver, THIS_MODULE, KBUILD_MODNAME) | 188 | __nd_driver_register(driver, THIS_MODULE, KBUILD_MODNAME) |
189 | #define module_nd_driver(driver) \ | ||
190 | module_driver(driver, nd_driver_register, nd_driver_unregister) | ||
185 | #endif /* __LINUX_ND_H__ */ | 191 | #endif /* __LINUX_ND_H__ */ |