Commit b23530eb authored by Ming Lei's avatar Ming Lei Committed by Greg Kroah-Hartman

driver core: remove polling for driver_probe_done(v5)

This patch removes 100ms polling for driver_probe_done in
wait_for_device_probe(), and uses wait_event() instead.
Removing polling in fs initialization may lead to
a faster boot.

This patch also changes the return type of wait_for_device_done()
from int to void.

This patch is against Arjan's patch in linux-next tree.
Signed-off-by: default avatarMing Lei <tom.leiming@gmail.com>
Acked-by: default avatarCornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: default avatarArjan van de Ven <arjan@linux.intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 04256b4a
...@@ -172,16 +172,12 @@ int driver_probe_done(void) ...@@ -172,16 +172,12 @@ int driver_probe_done(void)
/** /**
* wait_for_device_probe * wait_for_device_probe
* Wait for device probing to be completed. * 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 */ /* wait for the known devices to complete their probing */
while (driver_probe_done() != 0) wait_event(probe_waitqueue, atomic_read(&probe_count) == 0);
msleep(100);
async_synchronize_full(); async_synchronize_full();
return 0;
} }
/** /**
......
...@@ -147,7 +147,7 @@ extern void put_driver(struct device_driver *drv); ...@@ -147,7 +147,7 @@ extern void put_driver(struct device_driver *drv);
extern struct device_driver *driver_find(const char *name, extern struct device_driver *driver_find(const char *name,
struct bus_type *bus); struct bus_type *bus);
extern int driver_probe_done(void); 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 */ /* sysfs interface for exporting driver attributes */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment