summaryrefslogtreecommitdiffstats
path: root/sys/alpha
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2000-09-14 22:17:34 +0000
committerjhb <jhb@FreeBSD.org>2000-09-14 22:17:34 +0000
commit45b94b8ee4029e7816e2e81eb551ba3dd2b491c8 (patch)
tree43db2360194b40f3301749d42179cda575e70466 /sys/alpha
parentb48cc31f0906435d79f5873f2f8f49d77898253d (diff)
downloadFreeBSD-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.c2
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) {
OpenPOWER on IntegriCloud