Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Feb 2007 09:23:32 -0800
From:      Luigi Rizzo <rizzo@icir.org>
To:        Andrew Gallatin <gallatin@cs.duke.edu>
Cc:        cvs-src@FreeBSD.org, Luigi Rizzo <luigi@FreeBSD.org>, src-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: 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
Message-ID:  <20070221092332.A90766@xorpc.icir.org>
In-Reply-To: <20070221121302.A20229@grasshopper.cs.duke.edu>; from gallatin@cs.duke.edu on Wed, Feb 21, 2007 at 12:13:02PM -0500
References:  <200702151721.l1FHLWno019525@repoman.freebsd.org> <20070221121302.A20229@grasshopper.cs.duke.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Feb 21, 2007 at 12:13:02PM -0500, Andrew Gallatin wrote:
> Luigi Rizzo [luigi@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070221092332.A90766>