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: Ming Lei <tom.leiming@gmail.com> Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com> Reviewed-by: Arjan van de Ven <arjan@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
04256b4a8f
commit
b23530ebc3
@ -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);
|
|||||||
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 */
|
||||||
|
Loading…
Reference in New Issue
Block a user