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

Luigi Rizzo 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
> (http://people.freebsd.org/~gallatin/firmware_sx_recurse.diff)
> 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.

cheers
luigi


More information about the cvs-src mailing list