Thread (91 messages) 91 messages, 15 authors, 2012-01-03

Re: loading firmware while usermodehelper disabled.

From: Alan Stern <stern@rowland.harvard.edu>
Date: 2012-01-01 16:17:55
Also in: lkml

On Sun, 1 Jan 2012, Oliver Neukum wrote:
Am Sonntag, 1. Januar 2012, 03:21:45 schrieb Alan Stern:
quoted
On Sat, 31 Dec 2011, Oliver Neukum wrote:
quoted
quoted
We are definitely going through do_unbind_rebind(). But I don't think
it matters why we got there. We seem to be calling probe() too early.
And we need to guarantee that a driver can request firmware in probe()

So something has changed in the resume code path further up.
For at least a year and a half, it has been true that rebinding takes
Yes, so I don't understand why we haven't been hitting this issue
all that time.
Perhaps if Matthew compared logs from an old and a new system with 
appropriate debugging options configured, something might show up.
quoted
place during the complete phase of system resume.  Clearly that is too 
early to load firmware.  When do you think we should do it instead?
I think we ought to delay until right after user space is unfrozen.
The devices are gone anyway, so we lose nothing but have the ability
to call helpers.
That's true.  But doing it will be a nuisance.  The nice thing about 
the current situation is that the driver core automatically iterates 
over all interfaces.
quoted
And how should we keep track of which interfaces need rebinding?
I guess this calls for a brute force approach. We can kick khubd and have
it walk all busses checking for  needs_binding.
Ugh.  At a minimum, let's use a different process, not khubd.

As Linus pointed out, the real problem here is the firmware loader.  
The way it is now, a driver can't always depend on the data being
available, even during a normal boot.  It ought to use an asynchronous
approach; then none of these problems would arise.

Alan Stern
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help