Re: [PATCH] driver core: remove polling for driver_probe_done(v2)

From: Ming Lei
Date: Fri Jan 30 2009 - 05:17:57 EST


2009/1/30 Cornelia Huck <cornelia.huck@xxxxxxxxxx>:
> On Fri, 30 Jan 2009 10:31:42 +0800,
> tom.leiming@xxxxxxxxx wrote:
>
>
>> /**
>> + * driver_wait_probe_done_and_dev_appear
>> + * wait until the probe sequence is finished _and_ the dev @name appears.
>> + *
>> + */
>> +void driver_wait_probe_done_and_dev_appear(char *name)
>> +{
>> + pr_debug("%s: probe_count = %d\n", __func__,
>> + atomic_read(&probe_count));
>> +
>> + wait_event(probe_waitqueue, (atomic_read(&probe_count) == 0) &&
>> + name_to_dev_t(name));
>
> probe_waitqueue is only woken at the end of really_probe(), not when
> whatever needs to be done to make the device available is done...

Yes.

If probing done does not mean the device is available, this patch should be
ignored or fixed further.

But polling is really not good, is there a approach to avoid the polling for
appearence of the root device?

Thanks!

>
>> +}
>> +/**
>> * 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
>



--
Lei Ming
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/