summaryrefslogtreecommitdiff
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 09:14:39 -0800
commitc36cd16f78a5dd740a619ef8445e35a73484d58b (patch)
tree891222405ffed9d9a9df2edbb68d2383c6b3b6a0
parent6a0f03e0d35c10e07f1160ca75fc9a367931e38b (diff)
downloadlinux-3.10-c36cd16f78a5dd740a619ef8445e35a73484d58b.tar.gz
linux-3.10-c36cd16f78a5dd740a619ef8445e35a73484d58b.tar.bz2
linux-3.10-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>
-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 5c51d10408a..ee5ee4891f3 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);
}