select ARCH_DISCARD_MEMBLOCK
        select GENERIC_CPU_DEVICES
        select GENERIC_CLOCKEVENTS
+       select GENERIC_IDLE_LOOP
        select HAVE_MOD_ARCH_SPECIFIC
        select VIRT_TO_BUS
        select MODULES_USE_ELF_REL
 
 /* If or when software machine-power-off is implemented, add code here. */
 void machine_power_off(void) {}
 
-/*
- * The idle thread. There's no useful work to be
- * done, so just try to conserve power and have a
- * low exit latency (ie sit in a loop waiting for
- * somebody to say that they'd like to reschedule)
- */
-void __noreturn cpu_idle(void)
-{
-       /* endless idle loop with no priority at all */
-       while (1) {
-               rcu_idle_enter();
-               while (!need_resched())
-                       barrier();
-               rcu_idle_exit();
-               schedule_preempt_disabled();
-       }
-}
-
 void ret_from_fork(void);
 void ret_from_kernel_thread(void);