[PATCH] clocksource: Fix thinko in watchdog selection
authorThomas Gleixner <tglx@linutronix.de>
Sun, 25 Mar 2007 12:42:51 +0000 (14:42 +0200)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Sun, 25 Mar 2007 21:57:34 +0000 (14:57 -0700)
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>
kernel/time/clocksource.c

index 5b0e46b56fd0aeb08b16bafe437f0f0a1ce37796..fe5c7db2424700f8587284950cf8aecd926c06c6 100644 (file)
@@ -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) {