summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Torokhov <dmitry.torokhov@gmail.com>2015-05-21 15:49:37 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-05-24 12:28:30 -0700
commit80c6e1465948c2e91214f01764f427d31ebedb26 (patch)
tree51e7810eb55f67d49b43eece7f9f8d46a25228a7
parent802a87fd5be9cac1d05879bcdae2620e46b0dbe6 (diff)
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