diff options
Diffstat (limited to 'arch/ia64/kernel/process.c')
| -rw-r--r-- | arch/ia64/kernel/process.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c index 4158906c45aa..c613fc0e91cc 100644 --- a/arch/ia64/kernel/process.c +++ b/arch/ia64/kernel/process.c | |||
| @@ -198,9 +198,13 @@ default_idle (void) | |||
| 198 | { | 198 | { |
| 199 | local_irq_enable(); | 199 | local_irq_enable(); |
| 200 | while (!need_resched()) { | 200 | while (!need_resched()) { |
| 201 | if (can_do_pal_halt) | 201 | if (can_do_pal_halt) { |
| 202 | safe_halt(); | 202 | local_irq_disable(); |
| 203 | else | 203 | if (!need_resched()) { |
| 204 | safe_halt(); | ||
| 205 | } | ||
| 206 | local_irq_enable(); | ||
| 207 | } else | ||
| 204 | cpu_relax(); | 208 | cpu_relax(); |
| 205 | } | 209 | } |
| 206 | } | 210 | } |
