summaryrefslogtreecommitdiffstats
path: root/arch/x86_64
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2006-03-25 16:32:04 +0100
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-25 18:14:39 +0100
commitc36cd16f78a5dd740a619ef8445e35a73484d58b (patch)
tree891222405ffed9d9a9df2edbb68d2383c6b3b6a0 /arch/x86_64
parent[PATCH] x86_64: Don't enable CONFIG_UNWIND_INFO by default for DEBUG_KERNEL (diff)
downloadlinux-c36cd16f78a5dd740a619ef8445e35a73484d58b.tar.xz
linux-c36cd16f78a5dd740a619ef8445e35a73484d58b.zip
[PATCH] x86_64: Add cpu_relax() to busy loops in PM timer code
Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/x86_64')
-rw-r--r--arch/x86_64/kernel/pmtimer.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/x86_64/kernel/pmtimer.c b/arch/x86_64/kernel/pmtimer.c
index 5c51d10408a6..ee5ee4891f3d 100644
--- a/arch/x86_64/kernel/pmtimer.c
+++ b/arch/x86_64/kernel/pmtimer.c
@@ -86,7 +86,7 @@ static unsigned pmtimer_wait_tick(void)
for (a = b = inl(pmtmr_ioport) & ACPI_PM_MASK;
a == b;
b = inl(pmtmr_ioport) & ACPI_PM_MASK)
- ;
+ cpu_relax();
return b;
}
@@ -97,6 +97,7 @@ void pmtimer_wait(unsigned us)
a = pmtimer_wait_tick();
do {
b = inl(pmtmr_ioport);
+ cpu_relax();
} while (cyc2us(b - a) < us);
}