Re: [PATCH] request_firmware: skip timeout if userspace was notnotified

From: Cornelia Huck
Date: Tue Aug 07 2007 - 10:25:46 EST


On Tue, 07 Aug 2007 15:59:38 +0200,
Javier Pello <javier.pello@xxxxxxx> wrote:

> On Tue, 07 Aug 2007, Kay Sievers wrote:
>
> > If you don't have modules and the initial request fails, how do you
> > load the firmware later?
>
> I trigger a rebinding of the device to the driver in an init file:
> # echo -n [device] >/sys/.../bind

So it is indeed that this driver wants to fail its probe if it cannot
get the firmware. A possibilty to achieve a similar effect would be to
use request_firmware_nowait() and to call device_release_driver() from
the callback if no firmware is loaded. (This would imply a split of
that driver's probe function into two stages.)

>
> > The real fix would be to change the driver not to block in the
> > firmware request and use async version of firmware loading. The
> > whole firmware class with its silly timeout is just a piece of
> > crap, that needs to be replaced.
>
> I don't think that would be a real fix. You've done away with the
> kernel blocking, but the timeout is still there, only that in the
> background, and my point is still true: it is useless to wait at
> all if userspace didn't receive the event. Waiting asynchronously
> is less annoying than waiting synchronously, but equally useless.

Well, at least it doesn't block the whole probing process... although
this waiting is indeed useless.
-
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/