Re: Kernel BUG due to kernel page fault

From: Johannes Berg
Date: Fri Jan 27 2012 - 23:31:32 EST


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.

johannes
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/