diff options
author | Andi Kleen <ak@suse.de> | 2006-03-25 10:32:04 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-25 12:14:39 -0500 |
commit | c36cd16f78a5dd740a619ef8445e35a73484d58b (patch) | |
tree | 891222405ffed9d9a9df2edbb68d2383c6b3b6a0 /arch/x86_64/kernel | |
parent | 6a0f03e0d35c10e07f1160ca75fc9a367931e38b (diff) |
[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/kernel')
-rw-r--r-- | arch/x86_64/kernel/pmtimer.c | 3 |
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) | |||
86 | for (a = b = inl(pmtmr_ioport) & ACPI_PM_MASK; | 86 | for (a = b = inl(pmtmr_ioport) & ACPI_PM_MASK; |
87 | a == b; | 87 | a == b; |
88 | b = inl(pmtmr_ioport) & ACPI_PM_MASK) | 88 | b = inl(pmtmr_ioport) & ACPI_PM_MASK) |
89 | ; | 89 | cpu_relax(); |
90 | return b; | 90 | return b; |
91 | } | 91 | } |
92 | 92 | ||
@@ -97,6 +97,7 @@ void pmtimer_wait(unsigned us) | |||
97 | a = pmtimer_wait_tick(); | 97 | a = pmtimer_wait_tick(); |
98 | do { | 98 | do { |
99 | b = inl(pmtmr_ioport); | 99 | b = inl(pmtmr_ioport); |
100 | cpu_relax(); | ||
100 | } while (cyc2us(b - a) < us); | 101 | } while (cyc2us(b - a) < us); |
101 | } | 102 | } |
102 | 103 | ||