On 08/07/2025 5:24 pm, Greg Kroah-Hartman wrote:
@@ -895,13 +900,17 @@ static __cpuidle void mwait_idle(void) } __monitor((void *)¤t_thread_info()->flags, 0, 0);
if (!need_resched())
__sti_mwait(0, 0);
else
if (need_resched()) { raw_local_irq_enable();
goto out;
}
__sti_mwait(0, 0);
Erm, this doesn't look correct.
The raw_local_irq_enable() needs to remain after __sti_mwait().
~Andrew