diff --git a/core/sched.cc b/core/sched.cc index 01e2e5870710eb7883d2f36df187782487d79bc5..1994293ab63151425012aa49da366cdb166b02ce 100644 --- a/core/sched.cc +++ b/core/sched.cc @@ -482,7 +482,7 @@ void preempt_disable() void preempt_enable() { --preempt_counter; - if (!preempt_counter && need_reschedule) { + if (!preempt_counter && need_reschedule && arch::irq_enabled()) { schedule(); } }