Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 30 Sep 2005 08:59:59 -0400
From:      John Baldwin <jhb@FreeBSD.org>
To:        freebsd-hackers@freebsd.org
Cc:        Poul-Henning Kamp <phk@phk.freebsd.dk>, Divacky Roman <xdivac02@stud.fit.vutbr.cz>, Stanislav Sedov <stas@310.ru>
Subject:   Re: dev_lock() question
Message-ID:  <200509300900.01517.jhb@FreeBSD.org>
In-Reply-To: <15627.1128022613@critter.freebsd.dk>
References:  <15627.1128022613@critter.freebsd.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 29 September 2005 03:36 pm, Poul-Henning Kamp wrote:
> In message <200509291455.59914.jhb@FreeBSD.org>, John Baldwin writes:
> >On Thursday 29 September 2005 02:14 pm, Poul-Henning Kamp wrote:
> >> In message <200509291408.18098.jhb@FreeBSD.org>, John Baldwin writes:
> >> >Actually, you would think that it could be initialized either via an
> >> > early SYSINIT() or in the init_mutexes() function in kern_mutex.c and
> >> > thus not need the early check and avoid penalizing dev_lock().
> >> >
> >> >phk, how early his dev_lock needed?
> >>
> >> Far too early due to console madness (in syscons I belive).
> >
> >So would mutex_init() work?
>
> Havn't tried.  It basically has to work right before the copyright
> is printed.

Actually, mutexes won't work until after mutex_init() anyway, so it had better 
work. :)  I'll try it out.  Patch is below for reference:

--- //depot/vendor/freebsd/src/sys/kern/kern_conf.c	2005/09/19 20:01:08
+++ //depot/projects/smpng/sys/kern/kern_conf.c	2005/09/30 12:57:36
@@ -57,8 +57,7 @@
 void
 dev_lock(void)
 {
-	if (!mtx_initialized(&devmtx))
-		mtx_init(&devmtx, "cdev", NULL, MTX_DEF);
+
 	mtx_lock(&devmtx);
 }
 
--- //depot/vendor/freebsd/src/sys/kern/kern_mutex.c	2005/09/02 20:25:20
+++ //depot/projects/smpng/sys/kern/kern_mutex.c	2005/09/30 12:57:36
@@ -900,5 +935,6 @@
 	mtx_init(&Giant, "Giant", NULL, MTX_DEF | MTX_RECURSE);
 	mtx_init(&sched_lock, "sched lock", NULL, MTX_SPIN | MTX_RECURSE);
 	mtx_init(&proc0.p_mtx, "process lock", NULL, MTX_DEF | MTX_DUPOK);
+	mtx_init(&devmtx, "cdev", NULL, MTX_DEF);
 	mtx_lock(&Giant);
 }

-- 
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?200509300900.01517.jhb>