diff options
Diffstat (limited to 'sys/kern/kern_switch.c')
-rw-r--r-- | sys/kern/kern_switch.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/kern/kern_switch.c b/sys/kern/kern_switch.c index e8a802f..0139a8b 100644 --- a/sys/kern/kern_switch.c +++ b/sys/kern/kern_switch.c @@ -131,12 +131,13 @@ retry: kg = ke->ke_ksegrp; if (td->td_flags & TDF_UNBOUND) { TAILQ_REMOVE(&kg->kg_runq, td, td_runq); - if (kg->kg_last_assigned == td) + if (kg->kg_last_assigned == td) { if (TAILQ_PREV(td, threadqueue, td_runq) != NULL) printf("Yo MAMA!\n"); kg->kg_last_assigned = TAILQ_PREV(td, threadqueue, td_runq); + } /* * If we have started running an upcall, * Then TDF_UNBOUND WAS set because the thread was @@ -178,6 +179,7 @@ kse_reassign(struct kse *ke) struct ksegrp *kg; struct thread *td; + mtx_assert(&sched_lock, MA_OWNED); kg = ke->ke_ksegrp; /* |