diff options
author | Andi Kleen <ak@suse.de> | 2005-12-12 22:17:07 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-12-12 22:31:16 -0800 |
commit | 68e188911263adb06e28fa2c9dc9e017774de68d (patch) | |
tree | 159e570339af78445cd91f4fa8f3a426bf4a9aa6 /arch | |
parent | 7cd082f0147c5fc94b455bcc17fe21b22dbac703 (diff) | |
download | lwn-68e188911263adb06e28fa2c9dc9e017774de68d.tar.gz lwn-68e188911263adb06e28fa2c9dc9e017774de68d.zip |
[PATCH] x86_64: Make sure hpet_address is 0 when any part of HPET initialization fails
Otherwise TSC->HPET fallback could see incorrect state and crash later.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86_64/kernel/time.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86_64/kernel/time.c b/arch/x86_64/kernel/time.c index fdaddc4e5284..4434e154f596 100644 --- a/arch/x86_64/kernel/time.c +++ b/arch/x86_64/kernel/time.c @@ -59,7 +59,7 @@ static int notsc __initdata = 0; unsigned int cpu_khz; /* TSC clocks / usec, not used here */ static unsigned long hpet_period; /* fsecs / HPET clock */ unsigned long hpet_tick; /* HPET clocks / interrupt */ -static int hpet_use_timer; +static int hpet_use_timer; /* Use counter of hpet for time keeping, otherwise PIT */ unsigned long vxtime_hz = PIT_TICK_RATE; int report_lost_ticks; /* command line option */ unsigned long long monotonic_base; @@ -908,6 +908,8 @@ void __init time_init(void) if (!hpet_init()) vxtime_hz = (1000000000000000L + hpet_period / 2) / hpet_period; + else + vxtime.hpet_address = 0; if (hpet_use_timer) { cpu_khz = hpet_calibrate_tsc(); |