aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Thumshirn <jthumshirn@suse.de>2018-03-14 19:25:06 +0100
committerDan Williams <dan.j.williams@intel.com>2018-03-15 07:17:21 -0700
commit71cfdd0bad3ad91680e6b82cac634154cf56376e (patch)
tree6eb9fe253a8fa414bd87a20bda10843828a5ebe1
parentnfit_test: prevent parsing error of nfit_test.0 (diff)
downloadlinux-dev-71cfdd0bad3ad91680e6b82cac634154cf56376e.tar.xz
linux-dev-71cfdd0bad3ad91680e6b82cac634154cf56376e.zip
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.h6
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;
void nvdimm_region_notify(struct nd_region *nd_region, enum nvdimm_event event);
int __must_check __nd_driver_register(struct nd_device_driver *nd_drv,
struct module *module, const char *mod_name);
+static inline void nd_driver_unregister(struct nd_device_driver *drv)
+{
+ driver_unregister(&drv->drv);
+}
#define nd_driver_register(driver) \
__nd_driver_register(driver, THIS_MODULE, KBUILD_MODNAME)
+#define module_nd_driver(driver) \
+ module_driver(driver, nd_driver_register, nd_driver_unregister)
#endif /* __LINUX_ND_H__ */