summaryrefslogtreecommitdiff
path: root/include/linux/device.h
diff options
context:
space:
mode:
authorLuis R. Rodriguez <mcgrof@suse.com>2015-03-31 02:20:05 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-05-20 10:25:24 +0300
commitf2411da746985e60d4d087f3a43e271c61785927 (patch)
tree09b6c3b2abd4774f63e4a0d467e3c70daa52663e /include/linux/device.h
parent765230b5f084863183aa8adb3405ab3f32c0b16e (diff)
downloadlinux-f2411da746985e60d4d087f3a43e271c61785927.tar.xz
driver-core: add driver module asynchronous probe support
Some init systems may wish to express the desire to have device drivers run their probe() code asynchronously. This implements support for this and allows userspace to request async probe as a preference through a generic shared device driver module parameter, async_probe. Implementation for async probe is supported through a module parameter given that since synchronous probe has been prevalent for years some userspace might exist which relies on the fact that the device driver will probe synchronously and the assumption that devices it provides will be immediately available after this. Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/device.h')
-rw-r--r--include/linux/device.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/include/linux/device.h b/include/linux/device.h
index 7857b46c548b..77b7cd9e5467 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -201,10 +201,12 @@ extern struct klist *bus_get_device_klist(struct bus_type *bus);
* respective probe routines. This tells the core what to
* expect and prefer.
*
- * @PROBE_SYNCHRONOUS: Default. Drivers expect their probe routines
+ * @PROBE_DEFAULT_STRATEGY: Drivers expect their probe routines
* to run synchronously with driver and device registration
* (with the exception of -EPROBE_DEFER handling - re-probing
- * always ends up being done asynchronously).
+ * always ends up being done asynchronously) unless user
+ * explicitly requested asynchronous probing via module
+ * parameter.
* @PROBE_PREFER_ASYNCHRONOUS: Drivers for "slow" devices which
* probing order is not essential for booting the system may
* opt into executing their probes asynchronously.
@@ -216,7 +218,7 @@ extern struct klist *bus_get_device_klist(struct bus_type *bus);
* drivers.
*/
enum probe_type {
- PROBE_SYNCHRONOUS,
+ PROBE_DEFAULT_STRATEGY,
PROBE_PREFER_ASYNCHRONOUS,
};