dev_lock() question

John Baldwin jhb at FreeBSD.org
Fri Sep 30 07:06:04 PDT 2005


On Thursday 29 September 2005 03:36 pm, Poul-Henning Kamp wrote:
> In message <200509291455.59914.jhb at FreeBSD.org>, John Baldwin writes:
> >On Thursday 29 September 2005 02:14 pm, Poul-Henning Kamp wrote:
> >> In message <200509291408.18098.jhb at 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 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