Cc: pm list <linux-pm@...>, LKML <linux-kernel@...>, Nigel Cunningham <nigel@...>, Pavel Machek <pavel@...>, Alan Stern <stern@...>, Oliver Neukum <oliver@...>
On Monday, 28 May 2007 00:01, Matthew Garrett wrote:
Or worse. Suppose, for example, that the device which needs the firmware
uploaded is your network adapter and the firmware file is on NFS.
I don't think there's a solution to the "requesting firmware from .resume()"
problem other than copying the firmware into memory _before_ the suspend
and using this copy to upload the firmware in .resume().
Yes.
That's true, but we've been using the freezer for so long that at least some
drivers started to rely on it being used. That's the reason, IMO, why we can't
just drop the freezer right now.
It can be _replaced_ by some other synchronization mechanisms, but not just
dropped. Moreover, I think that to implement such mechanisms within device
drivers we should first stop using the same .suspend() and .resume() routines
for both hibernation and suspend.
This is the plan right now (ie. to stop using .suspend() and .resume() for
hibernation) and when we're done with that (yes, it'll take some time), then we
can think of dropping the freezer entirely from the suspend code path.
Well, I don't think we're breaking the drivers.
Please consider the example with a firmware on NFS. :-)
I think the _solution_ would be to fix the drivers. The other approaches are
just workarounds, including the $subject patch.
Greetings,
Rafael
-