summaryrefslogtreecommitdiffstats
path: root/drivers/base/dd.c
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@linux.intel.com>2009-02-23 14:05:56 -0800
committerH. Peter Anvin <hpa@linux.intel.com>2009-02-23 14:05:56 -0800
commitdc731ca60954310be0993e8992d450c7089fd13d (patch)
tree6a997916f963d9e6dfa76fc5564296f57c3f909e /drivers/base/dd.c
parentec5b3d32437571b8a742069a4cfd04edb6b6eda5 (diff)
parent20f4d6c3a2a23c5d7d9cc7f42fbb943ca7a03d1f (diff)
downloadkernel-crypto-dc731ca60954310be0993e8992d450c7089fd13d.tar.gz
kernel-crypto-dc731ca60954310be0993e8992d450c7089fd13d.tar.xz
kernel-crypto-dc731ca60954310be0993e8992d450c7089fd13d.zip
Merge branch 'x86/urgent' into x86/mce2
Diffstat (limited to 'drivers/base/dd.c')
-rw-r--r--drivers/base/dd.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/base/dd.c b/drivers/base/dd.c
index 315bed8d5e7..13523123910 100644
--- a/drivers/base/dd.c
+++ b/drivers/base/dd.c
@@ -18,9 +18,11 @@
*/
#include <linux/device.h>
+#include <linux/delay.h>
#include <linux/module.h>
#include <linux/kthread.h>
#include <linux/wait.h>
+#include <linux/async.h>
#include "base.h"
#include "power/power.h"
@@ -168,6 +170,21 @@ int driver_probe_done(void)
}
/**
+ * wait_for_device_probe
+ * Wait for device probing to be completed.
+ *
+ * Note: this function polls at 100 msec intervals.
+ */
+int wait_for_device_probe(void)
+{
+ /* wait for the known devices to complete their probing */
+ while (driver_probe_done() != 0)
+ msleep(100);
+ async_synchronize_full();
+ return 0;
+}
+
+/**
* driver_probe_device - attempt to bind device & driver together
* @drv: driver to bind a device to
* @dev: device to try to bind to the driver