Skip to contentSkip to conversation

fix cpu frequency detection in arch/i386/kernel/timers/timer_tsc.c::recalibrate_cpu_khz()

PATCH New Bruno Ducrot 1 participant 1 message Dec 19, 2005

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 fix cpu frequency detection in arch/i386/kernel/timers/timer_tsc.c::recalibrate_cpu_khz()

Hi,

When we re-calibrate the frequency, it is likely that an interrupt (as for example the main system clock) will be triggered by the system. Therefore the calibration may not be accurate. This will also provide a fix to bug #5266.

Many thanks to Larry Finger for helping resolving this issue.

From: Larry Finger

 linux-2.6.14.3/arch/i386/kernel/timers/timer_tsc.c |    2 ++
 1 files changed, 2 insertions(+)
arch/i386/kernel/timers/timer_tsc.c +2 -0
@@ -325,7 +325,9 @@ int recalibrate_cpu_khz(void)
 	unsigned int cpu_khz_old = cpu_khz;
 
 	if (cpu_has_tsc) {
+		local_irq_disable();
 		init_cpu_khz();
+		local_irq_enable();
 		cpu_data[0].loops_per_jiffy =
 		    cpufreq_scale(cpu_data[0].loops_per_jiffy,
 			          cpu_khz_old,
Signature · 4 lines
Bruno Ducrot

--  Which is worse:  ignorance or apathy?
--  Don't know.  Don't care.