Commit 321ea0c8 authored by Russell King's avatar Russell King

[ARM] Prevent "scheduling while atomic" in cpu_idle()

parent 996e73ac
...@@ -91,15 +91,16 @@ void default_idle(void) ...@@ -91,15 +91,16 @@ void default_idle(void)
void cpu_idle(void) void cpu_idle(void)
{ {
/* endless idle loop with no priority at all */ /* endless idle loop with no priority at all */
preempt_disable();
while (1) { while (1) {
void (*idle)(void) = pm_idle; void (*idle)(void) = pm_idle;
if (!idle) if (!idle)
idle = default_idle; idle = default_idle;
preempt_disable();
leds_event(led_idle_start); leds_event(led_idle_start);
while (!need_resched()) while (!need_resched())
idle(); idle();
leds_event(led_idle_end); leds_event(led_idle_end);
preempt_enable();
schedule(); schedule();
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment