diff options
Diffstat (limited to 'arch/arm/kernel/process.c')
| -rw-r--r-- | arch/arm/kernel/process.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index 93dd92cc12f8..c0f6a119de3b 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c | |||
| @@ -86,12 +86,16 @@ EXPORT_SYMBOL(pm_power_off); | |||
| 86 | */ | 86 | */ |
| 87 | void default_idle(void) | 87 | void default_idle(void) |
| 88 | { | 88 | { |
| 89 | local_irq_disable(); | 89 | if (hlt_counter) |
| 90 | if (!need_resched() && !hlt_counter) { | 90 | cpu_relax(); |
| 91 | timer_dyn_reprogram(); | 91 | else { |
| 92 | arch_idle(); | 92 | local_irq_disable(); |
| 93 | if (!need_resched()) { | ||
| 94 | timer_dyn_reprogram(); | ||
| 95 | arch_idle(); | ||
| 96 | } | ||
| 97 | local_irq_enable(); | ||
| 93 | } | 98 | } |
| 94 | local_irq_enable(); | ||
| 95 | } | 99 | } |
| 96 | 100 | ||
| 97 | /* | 101 | /* |
