Kernel crash w/o reason

John Baldwin jhb at FreeBSD.org
Mon Dec 27 14:11:05 PST 2004


On Friday 24 December 2004 07:13 am, Jan Engelhardt wrote:
> >> What should I use instead? A semaphore?
> >
> >You shouldn't have unrelated kernel threads waiting for a user
> >process at all, so this sounds like a design problem, regardless
> >of which mutual exclusion primitive you use.  (Bear in mind that I
> >haven't actually looked into what you're trying to do.)  In any
> >case, you can always use mutexes to implement whatever other
> >synchronization mechanism you need.
>
> I wanted that the device can only be opened once, and holding a mutex while
> it is open seemed like a simple idea. (Since mtx_trylock() will then fail
> -- easy to implement.)

Use a flag in your softc and use a mutex to protect access to the flag.

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


More information about the freebsd-hackers mailing list