From cce8dd143193f6d005d05d0a820358b149189b0b Mon Sep 17 00:00:00 2001 From: Avi Kivity <avi@cloudius-systems.com> Date: Mon, 18 Mar 2013 14:16:19 +0200 Subject: [PATCH] sched: only reschedule during wake() if preemption is enabled Noticed by Nadav. --- core/sched.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/sched.cc b/core/sched.cc index bd4c43ce6..c8539e0ca 100644 --- a/core/sched.cc +++ b/core/sched.cc @@ -264,7 +264,7 @@ void thread::wake() // FIXME: warrant an interruption if (_cpu != current()->tcpu()) { wakeup_ipi.send(_cpu); - } else if (arch::irq_enabled()) { + } else if (arch::irq_enabled() && !preempt_counter) { _cpu->schedule(); // We'll also reschedule at the end of an interrupt if needed } -- GitLab