|
@@ -27,6 +27,7 @@
|
|
#include <linux/reboot.h>
|
|
#include <linux/reboot.h>
|
|
#include <linux/elfcore.h>
|
|
#include <linux/elfcore.h>
|
|
#include <linux/pm.h>
|
|
#include <linux/pm.h>
|
|
|
|
+#include <linux/rcupdate.h>
|
|
|
|
|
|
void (*pm_power_off)(void);
|
|
void (*pm_power_off)(void);
|
|
EXPORT_SYMBOL(pm_power_off);
|
|
EXPORT_SYMBOL(pm_power_off);
|
|
@@ -50,9 +51,10 @@ void __noreturn cpu_idle(void)
|
|
{
|
|
{
|
|
/* endless idle loop with no priority at all */
|
|
/* endless idle loop with no priority at all */
|
|
while (1) {
|
|
while (1) {
|
|
|
|
+ rcu_idle_enter();
|
|
while (!need_resched())
|
|
while (!need_resched())
|
|
barrier();
|
|
barrier();
|
|
-
|
|
|
|
|
|
+ rcu_idle_exit();
|
|
schedule_preempt_disabled();
|
|
schedule_preempt_disabled();
|
|
}
|
|
}
|
|
}
|
|
}
|