diff --git a/arch/sh/kernel/process_32.c b/arch/sh/kernel/process_32.c index 908731c49afb92122518ab804e3bf1f4d7435b3c..e781540bd991f4e46681dfb9ef6e908f915ef9d5 100644 --- a/arch/sh/kernel/process_32.c +++ b/arch/sh/kernel/process_32.c @@ -59,8 +59,12 @@ static void default_idle(void) clear_thread_flag(TIF_POLLING_NRFLAG); smp_mb__after_clear_bit(); set_bl_bit(); + stop_critical_timings(); + while (!need_resched()) cpu_sleep(); + + start_critical_timings(); clear_bl_bit(); set_thread_flag(TIF_POLLING_NRFLAG); } else