|
@@ -25,6 +25,7 @@
|
|
#include <linux/reboot.h>
|
|
#include <linux/reboot.h>
|
|
#include <linux/interrupt.h>
|
|
#include <linux/interrupt.h>
|
|
#include <linux/pagemap.h>
|
|
#include <linux/pagemap.h>
|
|
|
|
+#include <linux/rcupdate.h>
|
|
|
|
|
|
#include <asm/asm-offsets.h>
|
|
#include <asm/asm-offsets.h>
|
|
#include <asm/uaccess.h>
|
|
#include <asm/uaccess.h>
|
|
@@ -69,12 +70,14 @@ void 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()) {
|
|
check_pgt_cache();
|
|
check_pgt_cache();
|
|
|
|
|
|
if (!frv_dma_inprogress && idle)
|
|
if (!frv_dma_inprogress && idle)
|
|
idle();
|
|
idle();
|
|
}
|
|
}
|
|
|
|
+ rcu_idle_exit();
|
|
|
|
|
|
schedule_preempt_disabled();
|
|
schedule_preempt_disabled();
|
|
}
|
|
}
|