diff options
author | Larry Finger <[email protected]> | 2006-01-06 00:12:17 -0800 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2006-01-06 08:33:39 -0800 |
commit | bcf0f0d233fc76e7c59c7f731caad555428d0e8d (patch) | |
tree | 34b39caa375380b86eba4ddf1ab2d5928b631f13 | |
parent | 3841b0a173cb6fc52163e67c03280543f2412db3 (diff) |
[PATCH] fix cpu frequency detection in arch/i386/kernel/timers/timer_tsc.c::recalibrate_cpu_khz()
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.
Signed-off-by: Bruno Ducrot <[email protected]>
Cc: john stultz <[email protected]>
Cc: Dave Jones <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
-rw-r--r-- | arch/i386/kernel/timers/timer_tsc.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/i386/kernel/timers/timer_tsc.c b/arch/i386/kernel/timers/timer_tsc.c index d395e3b42485..47675bbbb316 100644 --- a/arch/i386/kernel/timers/timer_tsc.c +++ b/arch/i386/kernel/timers/timer_tsc.c @@ -330,7 +330,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, |