[PATCH] Use read_timer_tsc only when CPU has TSC

From: Venkatesh Pallipadi
Date: Wed Jul 13 2005 - 13:44:51 EST




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 <venkatesh.pallipadi@xxxxxxxxx>

diff -purN linux-2.6.13-rc1/arch/i386/kernel/timers/timer_hpet.c.org linux-2.6.13-rc1/arch/i386/kernel/timers/timer_hpet.c
--- linux-2.6.13-rc1/arch/i386/kernel/timers/timer_hpet.c.org 2005-07-13 08:12:11.846794648 -0700
+++ linux-2.6.13-rc1/arch/i386/kernel/timers/timer_hpet.c 2005-07-13 08:17:25.055179736 -0700
@@ -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 = {
.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 = {
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/