Re: Kernel BUG due to kernel page fault

From: Larry Finger
Date: Sat Jan 28 2012 - 18:03:02 EST


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

--
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/