svn commit: r195700 - head/sys/kern
Konstantin Belousov
kib at FreeBSD.org
Tue Jul 14 22:50:42 UTC 2009
Author: kib
Date: Tue Jul 14 22:50:41 2009
New Revision: 195700
URL: http://svn.freebsd.org/changeset/base/195700
Log:
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)
Modified:
head/sys/kern/kern_synch.c
Modified: head/sys/kern/kern_synch.c
==============================================================================
--- head/sys/kern/kern_synch.c Tue Jul 14 22:48:30 2009 (r195699)
+++ head/sys/kern/kern_synch.c Tue Jul 14 22:50:41 2009 (r195700)
@@ -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();
+ }
}
/*
More information about the svn-src-head
mailing list