Do not use the ia64 clocksource on non-ia64 architectures
authorLinus Torvalds <torvalds@woody.linux-foundation.org>
Sat, 1 Sep 2007 03:13:57 +0000 (20:13 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Sat, 1 Sep 2007 03:14:22 +0000 (20:14 -0700)
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>
drivers/char/hpet.c

index 77bf4aa217a8afcb7e8eb505ed2b0f5d9a0542c0..7ecffc9c738f98b56693f61aa4150bfeb655f712 100644 (file)
@@ -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;
 }