From: Venkatesh Pallipadi Only use read_timer_tsc only when CPU has TSC. Thanks to Andrea for pointing this out. Should not be issue on any platforms as all recent systems that has HPET also has CPUs that supports TSC. The patch is still required for correctness. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Andrew Morton --- arch/i386/kernel/timers/timer_hpet.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletion(-) diff -puN arch/i386/kernel/timers/timer_hpet.c~hpet-use-read_timer_tsc-only-when-cpu-has-tsc arch/i386/kernel/timers/timer_hpet.c --- 25/arch/i386/kernel/timers/timer_hpet.c~hpet-use-read_timer_tsc-only-when-cpu-has-tsc Wed Jul 13 14:31:49 2005 +++ 25-akpm/arch/i386/kernel/timers/timer_hpet.c Wed Jul 13 14:31:49 2005 @@ -136,6 +136,8 @@ static void delay_hpet(unsigned long loo } while ((hpet_end - hpet_start) < (loops)); } +static struct timer_opts timer_hpet; + static int __init init_hpet(char* override) { unsigned long result, remain; @@ -163,6 +165,8 @@ static int __init init_hpet(char* overri } set_cyc2ns_scale(cpu_khz/1000); } + /* set this only when cpu_has_tsc */ + timer_hpet.read_timer = read_timer_tsc; } /* @@ -186,7 +190,6 @@ static struct timer_opts timer_hpet __re .get_offset = get_offset_hpet, .monotonic_clock = monotonic_clock_hpet, .delay = delay_hpet, - .read_timer = read_timer_tsc, }; struct init_timer_opts __initdata timer_hpet_init = { _