summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/kern/kern_threads.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/kern_threads.c b/sys/kern/kern_threads.c
index e4f0f4e..3e06abc 100644
--- a/sys/kern/kern_threads.c
+++ b/sys/kern/kern_threads.c
@@ -148,11 +148,13 @@ yield(struct proc *p, struct yield_args *uap) {
s = splhigh();
mtx_enter(&sched_lock, MTX_SPIN);
+ DROP_GIANT_NOSWITCH();
p->p_priority = MAXPRI;
setrunqueue(p);
p->p_stats->p_ru.ru_nvcsw++;
mi_switch();
mtx_exit(&sched_lock, MTX_SPIN);
+ PICKUP_GIANT();
splx(s);
return(0);
OpenPOWER on IntegriCloud