cvs commit: src/sys/sys firmware.h src/sys/kern subr_firmware.c
john at baldwin.cx
Mon Jun 12 20:31:14 UTC 2006
On Saturday 10 June 2006 13:04, Ian Dowse wrote:
> iedowse 2006-06-10 17:04:07 UTC
> FreeBSD src repository
> Modified files:
> sys/sys firmware.h
> sys/kern subr_firmware.c
> Keep firmware images on the list until they have been unregistered
> with firmware_unregister(). Previously when the last driver reference
> had been dropped we would clear the list entry under the assumption
> that the firmware module was about to be unloaded, but this was not
> true if the firmware image had been loaded manually with kldload.
> This makes it possible to manually kldload firmware images as a
> workaround for drivers such as ipw that attempt to load firmware
> while resuming after a suspend.
> Reviewed by: mlaier (an earlier version of the patch)
I think you still need to clear the entire entry in unloadentry() and not just
clear fp->file. Otherwise, another thread could gain a reference on this
entry in the table after you drop the firmware mutex and before
firmware_unregister() is ran by the kernel linker.
More information about the cvs-src