cvs commit: src/sys/arm/xscale/ixp425 ixp425_npe.c
src/sys/dev/ipw if_ipw.c if_ipwvar.h src/sys/dev/isp
isp_freebsd.h src/sys/dev/iwi if_iwi.c if_iwivar.h
src/sys/dev/mxge if_mxge.c src/sys/kern subr_firmware.c
src/sys/sys firmware.h src/sys/tools fw_stub.awk
rizzo at icir.org
Wed Feb 21 17:23:36 UTC 2007
On Wed, Feb 21, 2007 at 12:13:02PM -0500, Andrew Gallatin wrote:
> Luigi Rizzo [luigi at FreeBSD.org] wrote:
> > Cleanup and document the implementation of firmware(9) based on
> > a version that i posted earlier on the -current mailing list,
> > and subsequent feedback received.
> At least for me, firmware(9) has been broken ever since the kld_mtx
> was replaced with an sx lock last June. The problem is that there is
> an exclusive lock of kld_sx taken when loading a driver, and then
> firmware_get() triggers another xlock of it, leading to a deadlock:
> I've been using a patch
> which works around the problem. Do you think it would be
> possible to commit this?
i suppose it is ok... "iwi" uses a similar technique to avoid
recursive locking. I wonder how common is this practice, and whether
it makes sense to define some standard macros to implement this.
More information about the cvs-all