diff options
author | jhb <jhb@FreeBSD.org> | 2000-09-14 22:17:34 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2000-09-14 22:17:34 +0000 |
commit | 45b94b8ee4029e7816e2e81eb551ba3dd2b491c8 (patch) | |
tree | 43db2360194b40f3301749d42179cda575e70466 /sys/alpha | |
parent | b48cc31f0906435d79f5873f2f8f49d77898253d (diff) | |
download | FreeBSD-src-45b94b8ee4029e7816e2e81eb551ba3dd2b491c8.zip FreeBSD-src-45b94b8ee4029e7816e2e81eb551ba3dd2b491c8.tar.gz |
Grab the scheduler lock before calling setrunqueue() and mi_switch().
Diffstat (limited to 'sys/alpha')
-rw-r--r-- | sys/alpha/alpha/trap.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/alpha/alpha/trap.c b/sys/alpha/alpha/trap.c index ebfd140..3e773d3 100644 --- a/sys/alpha/alpha/trap.c +++ b/sys/alpha/alpha/trap.c @@ -121,9 +121,11 @@ userret(p, pc, oticks, have_giant) * indicated by our priority. */ s = splstatclock(); + mtx_enter(&sched_lock, MTX_SPIN); setrunqueue(p); p->p_stats->p_ru.ru_nivcsw++; mi_switch(); + mtx_exit(&sched_lock, MTX_SPIN); splx(s); while ((sig = CURSIG(p)) != 0) { if (have_giant == 0) { |