diff --git a/kernel/sched/core.c b/kernel/sched/core.c index e6e3f7664898..70a7cf563f01 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -8247,7 +8247,7 @@ SYSCALL_DEFINE0(sched_yield) #if !defined(CONFIG_PREEMPTION) || defined(CONFIG_PREEMPT_DYNAMIC) int __sched __cond_resched(void) { - if (should_resched(0)) { + if (should_resched(0) && !irqs_disabled()) { preempt_schedule_common(); return 1; }