diff options
Diffstat (limited to 'arch/arm26/kernel/process.c')
| -rw-r--r-- | arch/arm26/kernel/process.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/arch/arm26/kernel/process.c b/arch/arm26/kernel/process.c index 9eb9964d32a7..15833a0057dd 100644 --- a/arch/arm26/kernel/process.c +++ b/arch/arm26/kernel/process.c | |||
| @@ -74,15 +74,13 @@ __setup("hlt", hlt_setup); | |||
| 74 | void cpu_idle(void) | 74 | void cpu_idle(void) |
| 75 | { | 75 | { |
| 76 | /* endless idle loop with no priority at all */ | 76 | /* endless idle loop with no priority at all */ |
| 77 | preempt_disable(); | ||
| 78 | while (1) { | 77 | while (1) { |
| 79 | while (!need_resched()) { | 78 | while (!need_resched()) |
| 80 | local_irq_disable(); | 79 | cpu_relax(); |
| 81 | if (!need_resched() && !hlt_counter) | 80 | preempt_enable_no_resched(); |
| 82 | local_irq_enable(); | 81 | schedule(); |
| 83 | } | 82 | preempt_disable(); |
| 84 | } | 83 | } |
| 85 | schedule(); | ||
| 86 | } | 84 | } |
| 87 | 85 | ||
| 88 | static char reboot_mode = 'h'; | 86 | static char reboot_mode = 'h'; |
