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

John Baldwin jhb at freebsd.org
Wed Feb 21 23:07:26 UTC 2007


On Wednesday 21 February 2007 15:27, Andrew Gallatin wrote:
> Luigi Rizzo writes:
>  > On Wed, Feb 21, 2007 at 01:22:28PM -0500, Andrew Gallatin wrote:
>  > > 
>  > > Luigi Rizzo writes:
>  > ,,,
>  > >  > i am not sure i follow you here...
>  > >  > Of course when you drop the lock you risk that the underlying
>  > >  > data structure is manipulated (or in the worst case freed),
>  > >  > but usually you can avoid this with something like
>  > >  > 
>  > >  > 	<while locked>
>  > >  > 	sc->flags |= LEAVE_ME_ALONE
>  > >  > 	UNLOCK
>  > > 
>  > > Sorry, I hadn't noticed that iwi set a flag like that.  I was
>  > 
>  > not everywhere. i am sure that there are parts that are not protected.
> 
> That's the kind of thing I'm afraid of.
> 
>  > In any case i think we should relabel the thread or potentially
>  > interested people will miss the content being misled by the subject!
> 
> I'm satisfied to let it drop, now that I've vented a little :)
> 
> Back on, more or less, track:  Can you commit my hack to the kernel
> linker which lets firmware(9) work from attach() without deadlock?

Can you try http://www.FreeBSD.org/~jhb/patches/kld_recurse.patch

It compiles but I have not booted it.  It makes the various system
calls ignore files that aren't marked as fully linked yet to avoid
the races with dropping the lock and then drops the lock while it
runs through all the sysinit's.  Sorry this took so long.  My grumpy
side is frustrated that other people just want to commit hacks and
not invest time in coming up with cleaner solutions hoping someone
else will clean up their hack some day in the future, but I'm still
getting over a bout with the flu, so I'm likely extra grumpy.

-- 
John Baldwin


More information about the cvs-all mailing list