diff --git a/kernel/process.c b/kernel/process.c index d447fe95..cbb10ed0 100644 --- a/kernel/process.c +++ b/kernel/process.c @@ -3375,6 +3375,9 @@ int __sched_wakeup_thread(struct thread *thread, mcs_rwlock_writer_unlock_noirq(&proc->update_lock, &updatelock); xchg4((int *)(&thread->status), PS_RUNNING); status = 0; + + /* Make interrupt_exit() call schedule() */ + v->flags |= CPU_FLAG_NEED_RESCHED; } else { status = -EINVAL;