summaryrefslogtreecommitdiff
path: root/drivers/char/hpet.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-08-31 20:13:57 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-08-31 20:14:22 -0700
commit3b2b64fd311c92f2137eb7cee7025794cd854057 (patch)
tree60820982c28aa6d0a67d6aa555a68ca2413db45a /drivers/char/hpet.c
parent618a821dc24a4018b0c5c01785d052459a90edb4 (diff)
downloadlinux-3.10-3b2b64fd311c92f2137eb7cee7025794cd854057.tar.gz
linux-3.10-3b2b64fd311c92f2137eb7cee7025794cd854057.tar.bz2
linux-3.10-3b2b64fd311c92f2137eb7cee7025794cd854057.zip
Do not use the ia64 clocksource on non-ia64 architectures
The HPET clocksource in drivers/char/hpet.c was written as generic code for ia64, but it is not yet ready to replace the native HPET clocksource implementations that the i386/x86-64 architectures use. On x86[-64], trying to register this clocksource results in potentially multiple hpet-based clocksources being registered, and if the ia64 one is chosen on x86_64 some users have experienced hangs. Eventually all three architectures may end up using the same code, but that is not the case right now. Cc: John Stultz <johnstul@us.ibm.com> Cc: Tony Luck <tony.luck@intel.com> Cc: Paolo Ornati <ornati@fastwebnet.it> Cc: Bob Picco <bob.picco@hp.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/char/hpet.c')
-rw-r--r--drivers/char/hpet.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
index 77bf4aa217a..7ecffc9c738 100644
--- a/drivers/char/hpet.c
+++ b/drivers/char/hpet.c
@@ -909,6 +909,8 @@ int hpet_alloc(struct hpet_data *hdp)
hpetp->hp_delta = hpet_calibrate(hpetp);
+/* This clocksource driver currently only works on ia64 */
+#ifdef CONFIG_IA64
if (!hpet_clocksource) {
hpet_mctr = (void __iomem *)&hpetp->hp_hpet->hpet_mc;
CLKSRC_FSYS_MMIO_SET(clocksource_hpet.fsys_mmio, hpet_mctr);
@@ -918,6 +920,7 @@ int hpet_alloc(struct hpet_data *hdp)
hpetp->hp_clocksource = &clocksource_hpet;
hpet_clocksource = &clocksource_hpet;
}
+#endif
return 0;
}