Messages in this thread | | | Subject | Re: udev 182: response timeout for request_firmware in module_probe path | From | Benjamin Herrenschmidt <> | Date | Mon, 27 Aug 2012 02:04:00 +1000 |
| |
On Thu, 2012-08-23 at 17:46 +0100, Alan Cox wrote: > > IMO, the driver probing path is allowed to sleep, so looks request > firmware > > should be allowed inside .probe(). > > I'm not convinced about that. It can sleep but its holding various > locks > in most cases, and it looks like that can end up in a complete heap. > > By all means *request* the firmware asynchronously in the probe, but > there needs to be a seperate method somewhere after the probe to > finish > the job once the firmware appears.
Not necessarily enough in the general case, for example some stacks will cause a driver open to be call back from somewhere within the register_foo() the driver did to register itself with it's subsystem inside probe. For example register_framebuffer(), register_netdev(), ...
This is clearly a udev bug :-)
Cheers, Ben.
| |