Messages in this thread | | | Date | Sat, 28 Jan 2012 17:02:51 -0600 | From | Larry Finger <> | Subject | Re: Kernel BUG due to kernel page fault |
| |
On 01/27/2012 10:30 PM, Johannes Berg wrote: > Larry, > > On 1/26/2012 2:36 PM, Larry Finger wrote: >> I am trying to convert the rtlwifi family of drivers to use asynchronous >> firmware loading. With recent changes in udev, many problems are being >> reported. See Bug 42632] at b.k.o. > > I'm not sure what caused your problem, but your email reminded me of an issue we > had with asynchronous firmware loading that you may want to consider. > > When request_firmware_async() is called, it eventually calls the callback you > give it. This may, however, be a long time later (I think the current default > timeout is 1 minute). In the meantime, the module could be unloaded by the user, > and then the system crashes as soon as the firmwaer code attempts to invoke the > callback. > > To fix this, we have a completion in iwlwifi that some exit code path waits for > to make sure this scenario doesn't happen. > > I think you should implement that. > > A better fix would probably be to make request_firmware_async() take a struct > module * argument and pass THIS_MODULE to it, and make the firmware code handle > this, but currently it doesn't.
Thanks for explaining why the completion queue is in iwlwifi. That was easy to implement.
Larry
| |