diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c --- a/sys/kern/sched_ule.c +++ b/sys/kern/sched_ule.c @@ -871,7 +871,8 @@ */ TDQ_LOCK(tdq); td = tdq->tdq_curthread; - if ((td->td_flags & TDF_IDLETD) == 0 && + if (td->td_lock == TDQ_LOCKPTR(tdq) && + (td->td_flags & TDF_IDLETD) == 0 && THREAD_CAN_MIGRATE(td)) { td->td_flags |= TDF_NEEDRESCHED | TDF_PICKCPU; if (high != curcpu)