|
@@ -45,25 +45,10 @@ static const char * const processor_modes[] = {
|
|
|
"UK18", "UK19", "UK1A", "EXTN", "UK1C", "UK1D", "UK1E", "SUSR"
|
|
|
};
|
|
|
|
|
|
-void cpu_idle(void)
|
|
|
+void arch_cpu_idle(void)
|
|
|
{
|
|
|
- /* endless idle loop with no priority at all */
|
|
|
- while (1) {
|
|
|
- tick_nohz_idle_enter();
|
|
|
- rcu_idle_enter();
|
|
|
- while (!need_resched()) {
|
|
|
- local_irq_disable();
|
|
|
- stop_critical_timings();
|
|
|
- cpu_do_idle();
|
|
|
- local_irq_enable();
|
|
|
- start_critical_timings();
|
|
|
- }
|
|
|
- rcu_idle_exit();
|
|
|
- tick_nohz_idle_exit();
|
|
|
- preempt_enable_no_resched();
|
|
|
- schedule();
|
|
|
- preempt_disable();
|
|
|
- }
|
|
|
+ cpu_do_idle();
|
|
|
+ local_irq_enable();
|
|
|
}
|
|
|
|
|
|
static char reboot_mode = 'h';
|