diff options
author | jeff <jeff@FreeBSD.org> | 2008-03-10 09:50:29 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2008-03-10 09:50:29 +0000 |
commit | e53ae3b7988658d21fe97864dee33838e281ea58 (patch) | |
tree | 3bc123adba5eb8df6469aa2071c28dffa5897398 | |
parent | aa3cc14d3dd3ac17e34bc6285870928208e15fb4 (diff) | |
download | FreeBSD-src-e53ae3b7988658d21fe97864dee33838e281ea58.zip FreeBSD-src-e53ae3b7988658d21fe97864dee33838e281ea58.tar.gz |
- Don't rely on a side effect of sched_prio() to set the initial ts_runq
for thread0. Set it directly in sched_setup(). This fixes traps on boot
seen on some machines.
Reported by: phk
-rw-r--r-- | sys/kern/sched_ule.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c index 0427807..a4117cf 100644 --- a/sys/kern/sched_ule.c +++ b/sys/kern/sched_ule.c @@ -1250,6 +1250,7 @@ sched_setup(void *dummy) /* Add thread0's load since it's running. */ TDQ_LOCK(tdq); thread0.td_lock = TDQ_LOCKPTR(TDQ_SELF()); + tdq_runq_pick(tdq, &td_sched0); tdq_load_add(tdq, &td_sched0); tdq->tdq_lowpri = thread0.td_priority; TDQ_UNLOCK(tdq); |