Force a commit on kern_mutex.c to explain reason for last commit but while

I'm at it also add a comment in mtx_validate() explaining the purpose
of the last change.

Basically, this fixes booting kernels compiled with MUTEX_DEBUG. What used
to happen is before we setidt from init386() [still using BTX idt], we
called mtx_init() on several mutex locks, notably Giant and some others.
This is a problem for MUTEX_DEBUG because it enables mtx_validate() which
calls kernacc(), some of which in turn requires Giant.
Fix by calling kernacc() from mtx_validate() only if (!cold).
This commit is contained in:
Bosko Milekic 2001-08-24 23:00:59 +00:00
parent ab07087e16
commit 76dcbd6f9f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=82304
2 changed files with 10 additions and 0 deletions

View File

@ -611,6 +611,11 @@ mtx_validate(struct mtx *m)
* we can re-enable the kernacc() checks.
*/
#ifndef __alpha__
/*
* Can't call kernacc() from early init386(), especially when
* initializing Giant mutex, because some stuff in kernacc()
* requires Giant itself.
*/
if (!cold)
if (!kernacc((caddr_t)m, sizeof(m),
VM_PROT_READ | VM_PROT_WRITE))

View File

@ -611,6 +611,11 @@ mtx_validate(struct mtx *m)
* we can re-enable the kernacc() checks.
*/
#ifndef __alpha__
/*
* Can't call kernacc() from early init386(), especially when
* initializing Giant mutex, because some stuff in kernacc()
* requires Giant itself.
*/
if (!cold)
if (!kernacc((caddr_t)m, sizeof(m),
VM_PROT_READ | VM_PROT_WRITE))