Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3150e63d authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds
Browse files

revert "clocksource: make clocksource watchdog cycle through online CPUs"

Revert commit 1ada5cba ("clocksource:
make clocksource watchdog cycle through online CPUs") due to the
regression reported by Gabriel C at

	http://lkml.org/lkml/2008/2/24/281



(short vesion: it makes TSC be marked as always unstable on his
machine).

Cc: Andi Kleen <ak@suse.de>
Acked-by: default avatarIngo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Robert Hancock <hancockr@shaw.ca>
Acked-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Gabriel C <nix.or.die@googlemail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent cf821e8f
Loading
Loading
Loading
Loading
+4 −10
Original line number Diff line number Diff line
@@ -141,13 +141,8 @@ static void clocksource_watchdog(unsigned long data)
	}

	if (!list_empty(&watchdog_list)) {
		/* Cycle through CPUs to check if the CPUs stay synchronized to
		 * each other. */
		int next_cpu = next_cpu(raw_smp_processor_id(), cpu_online_map);
		if (next_cpu >= NR_CPUS)
			next_cpu = first_cpu(cpu_online_map);
		watchdog_timer.expires += WATCHDOG_INTERVAL;
		add_timer_on(&watchdog_timer, next_cpu);
		__mod_timer(&watchdog_timer,
			    watchdog_timer.expires + WATCHDOG_INTERVAL);
	}
	spin_unlock(&watchdog_lock);
}
@@ -169,7 +164,7 @@ static void clocksource_check_watchdog(struct clocksource *cs)
		if (!started && watchdog) {
			watchdog_last = watchdog->read();
			watchdog_timer.expires = jiffies + WATCHDOG_INTERVAL;
			add_timer_on(&watchdog_timer, first_cpu(cpu_online_map));
			add_timer(&watchdog_timer);
		}
	} else {
		if (cs->flags & CLOCK_SOURCE_IS_CONTINUOUS)
@@ -190,8 +185,7 @@ static void clocksource_check_watchdog(struct clocksource *cs)
				watchdog_last = watchdog->read();
				watchdog_timer.expires =
					jiffies + WATCHDOG_INTERVAL;
				add_timer_on(&watchdog_timer,
						first_cpu(cpu_online_map));
				add_timer(&watchdog_timer);
			}
		}
	}