|
@@ -41,37 +41,12 @@ SYSCALL_DEFINE0(arc_gettls)
|
|
|
return task_thread_info(current)->thr_ptr;
|
|
|
}
|
|
|
|
|
|
-static inline void arch_idle(void)
|
|
|
+void arch_cpu_idle(void)
|
|
|
{
|
|
|
/* sleep, but enable all interrupts before committing */
|
|
|
__asm__("sleep 0x3");
|
|
|
}
|
|
|
|
|
|
-void cpu_idle(void)
|
|
|
-{
|
|
|
- /* Since we SLEEP in idle loop, TIF_POLLING_NRFLAG can't be set */
|
|
|
-
|
|
|
- /* endless idle loop with no priority at all */
|
|
|
- while (1) {
|
|
|
- tick_nohz_idle_enter();
|
|
|
- rcu_idle_enter();
|
|
|
-
|
|
|
-doze:
|
|
|
- local_irq_disable();
|
|
|
- if (!need_resched()) {
|
|
|
- arch_idle();
|
|
|
- goto doze;
|
|
|
- } else {
|
|
|
- local_irq_enable();
|
|
|
- }
|
|
|
-
|
|
|
- rcu_idle_exit();
|
|
|
- tick_nohz_idle_exit();
|
|
|
-
|
|
|
- schedule_preempt_disabled();
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
asmlinkage void ret_from_fork(void);
|
|
|
|
|
|
/* Layout of Child kernel mode stack as setup at the end of this function is
|