[PATCH] i386 Time: Avoid PIT SMP lockups
[linux-2.6.git] / arch / i386 / kernel / tsc.c
index 1c3c927755de996447266cc4eaea4004c4b8ff77..fbc95828cd7493082aeeedc0396a762db056097b 100644 (file)
@@ -192,7 +192,7 @@ int recalibrate_cpu_khz(void)
 
 EXPORT_SYMBOL(recalibrate_cpu_khz);
 
-void tsc_init(void)
+void __init tsc_init(void)
 {
        if (!cpu_has_tsc || tsc_disable)
                return;
@@ -337,7 +337,7 @@ static struct clocksource clocksource_tsc = {
        .name                   = "tsc",
        .rating                 = 300,
        .read                   = read_tsc,
-       .mask                   = (cycle_t)-1,
+       .mask                   = CLOCKSOURCE_MASK(64),
        .mult                   = 0, /* to be set */
        .shift                  = 22,
        .update_callback        = tsc_update_callback,
@@ -349,8 +349,8 @@ static int tsc_update_callback(void)
        int change = 0;
 
        /* check to see if we should switch to the safe clocksource: */
-       if (clocksource_tsc.rating != 50 && check_tsc_unstable()) {
-               clocksource_tsc.rating = 50;
+       if (clocksource_tsc.rating != 0 && check_tsc_unstable()) {
+               clocksource_tsc.rating = 0;
                clocksource_reselect();
                change = 1;
        }
@@ -461,7 +461,7 @@ static int __init init_tsc_clocksource(void)
                                                        clocksource_tsc.shift);
                /* lower the rating if we already know its unstable: */
                if (check_tsc_unstable())
-                       clocksource_tsc.rating = 50;
+                       clocksource_tsc.rating = 0;
 
                init_timer(&verify_tsc_freq_timer);
                verify_tsc_freq_timer.function = verify_tsc_freq;