When wakeup(9) is going to notify swapper, assert that wait channel is not

equal to &proc0. It shall be not, since proc0 stack is not swappable, and
kick_proc0() is wakeup(&proc0).

Reviewed by:	jhb
Approved by:	re (kensmith)
This commit is contained in:
Konstantin Belousov 2009-07-14 22:50:41 +00:00
parent eddfbb763d
commit c8167830f9

View File

@ -347,8 +347,11 @@ wakeup(void *ident)
sleepq_lock(ident);
wakeup_swapper = sleepq_broadcast(ident, SLEEPQ_SLEEP, 0, 0);
sleepq_release(ident);
if (wakeup_swapper)
if (wakeup_swapper) {
KASSERT(ident != &proc0,
("wakeup and wakeup_swapper and proc0"));
kick_proc0();
}
}
/*