init: Move sched_clock_init after late_time_init
authorThomas Gleixner <tglx@linutronix.de>
Fri, 21 Aug 2009 20:01:12 +0000 (22:01 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 27 Aug 2009 14:38:18 +0000 (16:38 +0200)
Some architectures initialize clocks and timers in late_time_init and
x86 wants to do the same to avoid FIXMAP hackery for calibrating the
TSC. That would result in undefined sched_clock readout and wreckaged
printk timestamps again. We probably have those already on archs which
do all their time/clock setup in late_time_init.

There is no harm to move that after late_time_init except that a few
more boot timestamps are stale. The scheduler is not active at that
point so no real wreckage is expected.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
LKML-Reference: <new-submission>
Cc: linux-arch@vger.kernel.org
init/main.c

index 11f4f14..0ec75ce 100644 (file)
@@ -631,7 +631,6 @@ asmlinkage void __init start_kernel(void)
        softirq_init();
        timekeeping_init();
        time_init();
        softirq_init();
        timekeeping_init();
        time_init();
-       sched_clock_init();
        profile_init();
        if (!irqs_disabled())
                printk(KERN_CRIT "start_kernel(): bug: interrupts were "
        profile_init();
        if (!irqs_disabled())
                printk(KERN_CRIT "start_kernel(): bug: interrupts were "
@@ -682,6 +681,7 @@ asmlinkage void __init start_kernel(void)
        numa_policy_init();
        if (late_time_init)
                late_time_init();
        numa_policy_init();
        if (late_time_init)
                late_time_init();
+       sched_clock_init();
        calibrate_delay();
        pidmap_init();
        anon_vma_init();
        calibrate_delay();
        pidmap_init();
        anon_vma_init();