device_dax driver always match dax devices by default. The other drivers only match devices by dax_id. There are situations which need kmem drvier match all the dax device at boot time. So adding a parameter to support this function.
Signed-off-by: Zhenguo Yao <yaozheng...@gmail.com> --- drivers/dax/device.c | 3 +++ drivers/dax/kmem.c | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/drivers/dax/device.c b/drivers/dax/device.c index dd8222a..a974cc1 100644 --- a/drivers/dax/device.c +++ b/drivers/dax/device.c @@ -452,6 +452,7 @@ int dev_dax_probe(struct dev_dax *dev_dax) } EXPORT_SYMBOL_GPL(dev_dax_probe); +unsigned int match = 1; static struct dax_device_driver device_dax_driver = { .probe = dev_dax_probe, /* all probe actions are unwound by devm, so .remove isn't necessary */ @@ -460,6 +461,7 @@ int dev_dax_probe(struct dev_dax *dev_dax) static int __init dax_init(void) { + device_dax_driver.match_always = match; return dax_driver_register(&device_dax_driver); } @@ -468,6 +470,7 @@ static void __exit dax_exit(void) dax_driver_unregister(&device_dax_driver); } +module_param(match, uint, 0644); MODULE_AUTHOR("Intel Corporation"); MODULE_LICENSE("GPL v2"); module_init(dax_init); diff --git a/drivers/dax/kmem.c b/drivers/dax/kmem.c index a376220..41ba713 100644 --- a/drivers/dax/kmem.c +++ b/drivers/dax/kmem.c @@ -214,9 +214,11 @@ static void dev_dax_kmem_remove(struct dev_dax *dev_dax) } #endif /* CONFIG_MEMORY_HOTREMOVE */ +unsigned int match; static struct dax_device_driver device_dax_kmem_driver = { .probe = dev_dax_kmem_probe, .remove = dev_dax_kmem_remove, + .match_always = 0, }; static int __init dax_kmem_init(void) @@ -228,6 +230,7 @@ static int __init dax_kmem_init(void) if (!kmem_name) return -ENOMEM; + device_dax_kmem_driver.match_always = match; rc = dax_driver_register(&device_dax_kmem_driver); if (rc) kfree_const(kmem_name); @@ -241,6 +244,7 @@ static void __exit dax_kmem_exit(void) kfree_const(kmem_name); } +module_param(match, uint, 0644); MODULE_AUTHOR("Intel Corporation"); MODULE_LICENSE("GPL v2"); module_init(dax_kmem_init); -- 1.8.3.1