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>