Re: [RFC][PATCH -mm 3/3] PM: Disable _request_firmware before hibernation/suspend

Rafael J. Wysocki
2007-05-27T21:55:19Z

On Sunday, 27 May 2007 22:45, Michael-Luke Jones wrote:
> On 27 May 2007, at 21:31, Rafael J. Wysocki wrote:
>
> > From: Rafael J. Wysocki <rjw@sisk.pl>
> >
> > Use a hibernation and suspend notifier to disable the firmware
> > requesting
> > mechanism before a hibernation/suspend and enable it after the
> > operation.
> >
> > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
> >
> > drivers/base/firmware_class.c | 36 ++++++++++++++++++++++++++++++
> > ++++++
> > 1 file changed, 36 insertions(+)
>
> I don't like this approach, as I feel that the firmware loading
> interface should be able to detect if a firmware load request is not
> being handled, due to absence of userspace / hotplug handler presence.

In principle, I agree. In practice, though, I don't know how to make this
happen.

> Other circumstances in which this can be a problem is during bootup
> when request_firmware() calls can be made before userspace is up and
> init has run (even in the presence of an initramfs).
>
> (Slightly OT: A particularly nasty race is when an initramfs
> userspace is present, but firmware loading cannot occur because init
> has not run, so proc hasn't been mounted, so a hotplug event handler
> cannot be registered, despite the fact that the firmware is sitting
> on the ramdisk mounted correctly...)
>
> In short, a more general solution would be preferred, and preferably
> one which allows firmware loading to *actually* occur once userspace
> has actually turned up and registered a handler :)

I agree, but well ... ;-)

Greetings,
Rafael