Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Sep 2004 21:35:31 -0400
From:      John Baldwin <jhb@FreeBSD.org>
To:        "M. Warner Losh" <imp@bsdimp.com>
Cc:        nate@root.org
Subject:   Re: cvs commit: src/sys/dev/fdc fdc.c fdcvar.h
Message-ID:  <200409232135.31918.jhb@FreeBSD.org>
In-Reply-To: <20040923.191950.04529674.imp@bsdimp.com>
References:  <20040923224739.GE959@green.homeunix.org> <200409231923.40285.jhb@FreeBSD.org> <20040923.191950.04529674.imp@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 23 September 2004 09:19 pm, M. Warner Losh wrote:
> In message: <200409231923.40285.jhb@FreeBSD.org>
>
>             John Baldwin <jhb@freebsd.org> writes:
> : Note that relying on a wakeup from your own code is not safe if you
> : expect fdc to be a module since you could wakeup the thread doing the
> : kldunload (and thus detach) and then be interrupted for an interrupt and
> : it could unmap the memory backing that function before you get a chance
> : to run again resulting in a panic.  There is a special wakeup on the
> : proc pointer in exit1() for kthreads to handle this case.
>
> Wouldn't simply unregistering your interrupt before killing the worker
> thread handle this case?  You are sleeping in the detach path then
> until the worker thread goes away.  Once it is gone, it is safe to
> proceed to detach.  cbb does this and I've not had any problems
> unloading it.  In fact, it was how you told me to write cbb a long
> time ago.  Once the bus_teardown_intr() returns, you are guaranteed
> the interrupt won't get called.

What about someone else's interrupt preempting you?

> : I should
> : likely move that into kthread_exit() however (which wouldn't be a
> : functional change as far as you are concerned).
>
> I'm not sure I understand this part of your statement.

I currently have a wakeup() buried in exit1() conditional on p_flag & 
P_KTHREAD.  I should just move it to kthread_exit() so it happens sooner and 
is less obfuscated.

-- 
John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org



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