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>

index | next in thread | previous in thread | raw e-mail

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


help

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