aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/kernel
diff options
context:
space:
mode:
authorGuillaume Chazarain <guichaz@gmail.com>2007-03-16 21:07:36 +0100
committerAndi Kleen <andi@basil.nowhere.org>2007-03-16 21:07:36 +0100
commit28f36f8fbf5f3718f7095055c1911a67d200dda1 (patch)
tree347c291d0fc9b9b6bb6ce972563a98b39af2fc51 /arch/i386/kernel
parent[PATCH] x86-64: fix section mismatch warnings (diff)
downloadlinux-dev-28f36f8fbf5f3718f7095055c1911a67d200dda1.tar.xz
linux-dev-28f36f8fbf5f3718f7095055c1911a67d200dda1.zip
[PATCH] i386: Don't use the TSC in sched_clock if unstable
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f9690982b8c2f9a2c65acdc113e758ec356676a3 caused a regression by letting sched_clock use the TSC even when cpufreq disabled it. This caused scheduling weirdnesses. Signed-off-by: Guillaume Chazarain <guichaz@yahoo.fr> Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'arch/i386/kernel')
-rw-r--r--arch/i386/kernel/tsc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/i386/kernel/tsc.c b/arch/i386/kernel/tsc.c
index 602660df455c..0e65f7ab63a2 100644
--- a/arch/i386/kernel/tsc.c
+++ b/arch/i386/kernel/tsc.c
@@ -105,7 +105,7 @@ unsigned long long sched_clock(void)
/*
* Fall back to jiffies if there's no TSC available:
*/
- if (unlikely(tsc_disable))
+ if (tsc_unstable || unlikely(tsc_disable))
/* No locking but a rare wrong value is not a big deal: */
return (jiffies_64 - INITIAL_JIFFIES) * (1000000000 / HZ);