From a955582164f06ab7fd24254b0ffd3e9cd337a884 Mon Sep 17 00:00:00 2001 From: Ming Lei Date: Sat, 21 Feb 2009 16:45:07 +0800 Subject: [PATCH] --- yaml --- r: 133451 b: refs/heads/master c: b23530ebc339c4092ae2c9f37341a5398fea8b89 h: refs/heads/master i: 133449: 17e936600a4b2bb1a68996fa676dbcf983023c13 133447: d4f72dbb6c3198e3551c868c727d29978a77cfd0 v: v3 --- [refs] | 2 +- trunk/drivers/base/dd.c | 8 ++------ trunk/include/linux/device.h | 2 +- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index 7f2e5f3ffb7e..5ab1821e174c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 04256b4a8fc73f54cd14f20867882c299728a446 +refs/heads/master: b23530ebc339c4092ae2c9f37341a5398fea8b89 diff --git a/trunk/drivers/base/dd.c b/trunk/drivers/base/dd.c index 3f32df7ed373..0dfd08c15921 100644 --- a/trunk/drivers/base/dd.c +++ b/trunk/drivers/base/dd.c @@ -172,16 +172,12 @@ 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) +void wait_for_device_probe(void) { /* wait for the known devices to complete their probing */ - while (driver_probe_done() != 0) - msleep(100); + wait_event(probe_waitqueue, atomic_read(&probe_count) == 0); async_synchronize_full(); - return 0; } /** diff --git a/trunk/include/linux/device.h b/trunk/include/linux/device.h index d5706c448bcb..c56b154a0bf4 100644 --- a/trunk/include/linux/device.h +++ b/trunk/include/linux/device.h @@ -147,7 +147,7 @@ extern void put_driver(struct device_driver *drv); extern struct device_driver *driver_find(const char *name, struct bus_type *bus); extern int driver_probe_done(void); -extern int wait_for_device_probe(void); +extern void wait_for_device_probe(void); /* sysfs interface for exporting driver attributes */