summaryrefslogtreecommitdiffstats
path: root/kernel/time
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2007-03-25 14:42:51 +0200
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-03-25 23:57:34 +0200
commit948ac6d71cf868b431adb3139d8dfbd9c4e4a6ca (patch)
tree485171e5970cfc75614730aaa4201db430c3030a /kernel/time
parent[PATCH] dynticks: fix hrtimer rounding error in next_timer_interrupt (diff)
downloadlinux-948ac6d71cf868b431adb3139d8dfbd9c4e4a6ca.tar.xz
linux-948ac6d71cf868b431adb3139d8dfbd9c4e4a6ca.zip
[PATCH] clocksource: Fix thinko in watchdog selection
The watchdog implementation excludes low res / non continuous clocksources from being selected as a watchdog reference unintentionally. Allow using jiffies/PIT as a watchdog reference as long as no better clocksource is available. This is necessary to detect TSC breakage on systems, which have no pmtimer/hpet. The main goal of the initial patch (preventing to switch to highres/nohz when no reliable fallback clocksource is available) is still guaranteed by the checks in clocksource_watchdog(). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/time')
-rw-r--r--kernel/time/clocksource.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c
index 5b0e46b56fd0..fe5c7db24247 100644
--- a/kernel/time/clocksource.c
+++ b/kernel/time/clocksource.c
@@ -151,7 +151,8 @@ static void clocksource_check_watchdog(struct clocksource *cs)
watchdog_timer.expires = jiffies + WATCHDOG_INTERVAL;
add_timer(&watchdog_timer);
}
- } else if (cs->flags & CLOCK_SOURCE_IS_CONTINUOUS) {
+ } else {
+ if (cs->flags & CLOCK_SOURCE_IS_CONTINUOUS)
cs->flags |= CLOCK_SOURCE_VALID_FOR_HRES;
if (!watchdog || cs->rating > watchdog->rating) {