summaryrefslogtreecommitdiff
path: root/sys/kern/sys_generic.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern/sys_generic.c')
-rw-r--r--sys/kern/sys_generic.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c
index 635db71dc99a..95224c8cece5 100644
--- a/sys/kern/sys_generic.c
+++ b/sys/kern/sys_generic.c
@@ -1025,6 +1025,7 @@ selwakeup(sip)
sip->si_pid = 0;
if (p != NULL) {
s = splhigh();
+ mtx_enter(&sched_lock, MTX_SPIN);
if (p->p_wchan == (caddr_t)&selwait) {
if (p->p_stat == SSLEEP)
setrunnable(p);
@@ -1032,6 +1033,7 @@ selwakeup(sip)
unsleep(p);
} else if (p->p_flag & P_SELECT)
p->p_flag &= ~P_SELECT;
+ mtx_exit(&sched_lock, MTX_SPIN);
splx(s);
}
}