summaryrefslogtreecommitdiffstats
path: root/arch/ia64/kernel/process.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-08-18 09:38:56 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-08-18 09:38:56 -0700
commited72df448250a6da72b65e7881eb63c5ded3475f (patch)
treecff147d103f1578380b0c3c324630d9c75945fb3 /arch/ia64/kernel/process.c
parent505683675cf0ed903765f160ad633f77ab90a9d4 (diff)
parent118142080a75fc1ce599c73b7894a71b4813828e (diff)
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6: Cross-compilation between e.g. i386 -> 64bit could break -> work around it [IA64] Enable early console for Ski simulator [IA64] forbid ptrace changes psr.ri to 3 [IA64] Failure to grow RBS [IA64] Fix processor_get_freq [IA64] SGI Altix : fix a force_interrupt bug on altix [IA64] Update arch/ia64/configs/* s/SLAB/SLUB/ [IA64] get back PT_IA_64_UNWIND program header [IA64] need NOTES in vmlinux.lds.S [IA64] make unwinder stop at last frame of the bootloader [IA64] Clean up CPE handler registration [IA64] Include Kconfig.preempt [IA64] SN2 needs platform specific irq_to_vector() function. [IA64] Use atomic64_read to read an atomic64_t. [IA64] disable irq's and check need_resched before safe_halt
Diffstat (limited to 'arch/ia64/kernel/process.c')
-rw-r--r--arch/ia64/kernel/process.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c
index 4158906c45a..c613fc0e91c 100644
--- a/arch/ia64/kernel/process.c
+++ b/arch/ia64/kernel/process.c
@@ -198,9 +198,13 @@ default_idle (void)
{
local_irq_enable();
while (!need_resched()) {
- if (can_do_pal_halt)
- safe_halt();
- else
+ if (can_do_pal_halt) {
+ local_irq_disable();
+ if (!need_resched()) {
+ safe_halt();
+ }
+ local_irq_enable();
+ } else
cpu_relax();
}
}