summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Torokhov2015-05-22 00:49:37 +0200
committerGreg Kroah-Hartman2015-05-24 21:28:30 +0200
commit80c6e1465948c2e91214f01764f427d31ebedb26 (patch)
tree51e7810eb55f67d49b43eece7f9f8d46a25228a7
parentdriver-core: make __device_attach() static (diff)
downloadkernel-qcow2-linux-80c6e1465948c2e91214f01764f427d31ebedb26.tar.gz
kernel-qcow2-linux-80c6e1465948c2e91214f01764f427d31ebedb26.tar.xz
kernel-qcow2-linux-80c6e1465948c2e91214f01764f427d31ebedb26.zip
driver-core: fix build for !CONFIG_MODULES
Commit f2411da74698 ("driver-core: add driver module asynchronous probe support") broke build in case modules are disabled, because in this case "struct module" is not defined and we can't dereference it. Let's define module_requested_async_probing() helper and stub it out if modules are disabled. Reported-by: kbuild test robot <fengguang.wu@intel.com> Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/base/dd.c2
-rw-r--r--include/linux/module.h11
2 files changed, 12 insertions, 1 deletions
diff --git a/drivers/base/dd.c b/drivers/base/dd.c
index 42e97d90a59a..8da8e071f01d 100644
--- a/drivers/base/dd.c
+++ b/drivers/base/dd.c
@@ -427,7 +427,7 @@ bool driver_allows_async_probing(struct device_driver *drv)
return false;
default:
- if (drv->owner && drv->owner->async_probe_requested)
+ if (module_requested_async_probing(drv->owner))
return true;
return false;
diff --git a/include/linux/module.h b/include/linux/module.h
index f46a47d3c0dc..57f5c0a804c0 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -510,6 +510,11 @@ int unregister_module_notifier(struct notifier_block *nb);
extern void print_modules(void);
+static inline bool module_requested_async_probing(struct module *module)
+{
+ return module && module->async_probe_requested;
+}
+
#else /* !CONFIG_MODULES... */
/* Given an address, look for it in the exception tables. */
@@ -620,6 +625,12 @@ static inline int unregister_module_notifier(struct notifier_block *nb)
static inline void print_modules(void)
{
}
+
+static inline bool module_requested_async_probing(struct module *module)
+{
+ return false;
+}
+
#endif /* CONFIG_MODULES */
#ifdef CONFIG_SYSFS