Browse Source

sh: Fix up IRQ re-enabling for the need_resched() case.

In the case where need_resched() is set in between the cpu_idle() and
pm_idle() calls we were missing an else case for just re-enabling local
IRQs and bailing out. This was noticed by the irqs_disabled() warning,
even though IRQs were being re-enabled elsewhere.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt 15 năm trước cách đây
mục cha
commit
9dbe00a56a
1 tập tin đã thay đổi với 2 bổ sung1 xóa
  1. 2 1
      arch/sh/kernel/idle.c

+ 2 - 1
arch/sh/kernel/idle.c

@@ -65,7 +65,8 @@ void default_idle(void)
 		if (!need_resched()) {
 		if (!need_resched()) {
 			local_irq_enable();
 			local_irq_enable();
 			cpu_sleep();
 			cpu_sleep();
-		}
+		} else
+			local_irq_enable();
 
 
 		set_thread_flag(TIF_POLLING_NRFLAG);
 		set_thread_flag(TIF_POLLING_NRFLAG);
 	} else
 	} else