summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authortanimura <tanimura@FreeBSD.org>2002-07-21 10:55:57 +0000
committertanimura <tanimura@FreeBSD.org>2002-07-21 10:55:57 +0000
commit6c7dddef247aa29c7ba3885c77f0ac1093e6a08a (patch)
tree8515260500fe237b6bbe97f621f7756d5102ce21 /sys/vm
parentbd9024b4d748fdf8b2fdc9b4c5cf222eea49fa8d (diff)
downloadFreeBSD-src-6c7dddef247aa29c7ba3885c77f0ac1093e6a08a.zip
FreeBSD-src-6c7dddef247aa29c7ba3885c77f0ac1093e6a08a.tar.gz
Do not pass a thread with the state TDS_RUNQ to setrunqueue(), otherwise
assertion in setrunqueue() fails.
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_glue.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/vm/vm_glue.c b/sys/vm/vm_glue.c
index cf37e46..36f709d 100644
--- a/sys/vm/vm_glue.c
+++ b/sys/vm/vm_glue.c
@@ -504,8 +504,11 @@ faultin(p)
PROC_LOCK(p);
mtx_lock_spin(&sched_lock);
FOREACH_THREAD_IN_PROC (p, td)
- if (td->td_state == TDS_RUNQ) /* XXXKSE */
+ if (td->td_state == TDS_RUNQ) { /* XXXKSE */
+ /* XXXKSE TDS_RUNQ causes assertion failure. */
+ td->td_state = TDS_UNQUEUED;
setrunqueue(td);
+ }
p->p_sflag |= PS_INMEM;
OpenPOWER on IntegriCloud