The CPU frequency change detection code can change the values used to
compute time of day with TSC; but there was no locking around it.
--- timer_tsc.c.orig 2003-03-18 14:52:25.000000000 -0800
+++ timer_tsc.c 2003-03-18 14:55:13.000000000 -0800
@@ -213,6 +213,7 @@
{
struct cpufreq_freqs *freq = data;
+ write_seqlock(&xtime_lock);
if (!ref_freq) {
ref_freq = freq->old;
loops_per_jiffy_ref = cpu_data[freq->cpu].loops_per_jiffy;
@@ -232,6 +233,7 @@
}
#endif
}
+ write_sequnlock(&xtime_lock);
return 0;
}