MFi386: revision 1.506.

This commit is contained in:
Yoshihiro Takahashi 2002-03-30 11:14:52 +00:00
parent 3346f3a5cd
commit 880d114c8a
2 changed files with 18 additions and 8 deletions

View File

@ -815,9 +815,14 @@ cpu_idle(void)
#ifndef SMP
if (cpu_idle_hlt) {
disable_intr();
if (procrunnable()) {
if (procrunnable()) {
enable_intr();
} else {
/*
* we must absolutely guarentee that hlt is the
* absolute next instruction after sti or we
* introduce a timing window.
*/
__asm __volatile("sti; hlt");
}
}
@ -1758,9 +1763,9 @@ init386(first)
* Initialize mutexes.
*
* icu_lock: in order to allow an interrupt to occur in a critical
* section, to set pcpu->ipending (etc...) properly, we
* must be able to get the icu lock, so it can't be under
* witness.
* section, to set pcpu->ipending (etc...) properly, we
* must be able to get the icu lock, so it can't be
* under witness.
*/
mtx_init(&Giant, "Giant", MTX_DEF | MTX_RECURSE);
mtx_init(&sched_lock, "sched lock", MTX_SPIN | MTX_RECURSE);

View File

@ -815,9 +815,14 @@ cpu_idle(void)
#ifndef SMP
if (cpu_idle_hlt) {
disable_intr();
if (procrunnable()) {
if (procrunnable()) {
enable_intr();
} else {
/*
* we must absolutely guarentee that hlt is the
* absolute next instruction after sti or we
* introduce a timing window.
*/
__asm __volatile("sti; hlt");
}
}
@ -1758,9 +1763,9 @@ init386(first)
* Initialize mutexes.
*
* icu_lock: in order to allow an interrupt to occur in a critical
* section, to set pcpu->ipending (etc...) properly, we
* must be able to get the icu lock, so it can't be under
* witness.
* section, to set pcpu->ipending (etc...) properly, we
* must be able to get the icu lock, so it can't be
* under witness.
*/
mtx_init(&Giant, "Giant", MTX_DEF | MTX_RECURSE);
mtx_init(&sched_lock, "sched lock", MTX_SPIN | MTX_RECURSE);