Re: will these methods work with firmware loading?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Larry,

> I know that changing the request_firmware() call to request_firmware_nowait() 
> solves the problem; however, that gives some trouble for driver b43legacy as it 
> loads 3 or 4 firmware files depending on the hardware version. When I launch the 
> 3 or 4 nowait requests, I get an error because the system is trying to start 
> several tasks with the same name.
> 
> Would it be OK to load the first file with the nowait version, and issue a 
> request_firmware() for the others from the callback routine? I think that would 
> not cause any problems, but I would like to get confirmation from an expert.

That should work -- I just looked at the firmware code and it spawns a
new thread for every "nowait" request (and it calls the callback in that
thread's context), so it won't block against itself.

> Similarly, if I were to create a work queue, init and schedule it from 
> module_init(), and then use synchronous loads to get the firmware from the work 
> queue callback, would that get around the boot problem? I know it works as I 
> have trial patches; however, my version of udev is not one affected. This method 
> is very easy to implement, but again I would like confirmation from an expert.

We discussed that before, and technically it should work, I'm just a bit
worried about udev treating asynchronous and synchronous requests
differently and that causing issues, but somebody who knows udev better
will have to comment on that.

johannes

_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel


[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux