x86: make APIC_init_uniprocessor() more like smp_prepare_cpus()
authorYinghai Lu <yinghai@kernel.org>
Mon, 16 Feb 2009 08:00:50 +0000 (00:00 -0800)
committerIngo Molnar <mingo@elte.hu>
Mon, 16 Feb 2009 08:37:04 +0000 (09:37 +0100)
Impact: cleanup

1. move localise_nmi_watchdog() later
2. change setup_boot_APIC_clock() to setup_boot_clock() for 64-bit

Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/apic.c

index b8616aa..c03f4cc 100644 (file)
@@ -1649,32 +1649,28 @@ int __init APIC_init_uniprocessor(void)
 #ifdef CONFIG_X86_IO_APIC
        /*
         * Now enable IO-APICs, actually call clear_IO_APIC
-        * We need clear_IO_APIC before enabling vector on BP
+        * We need clear_IO_APIC before enabling error vector
         */
        if (!skip_ioapic_setup && nr_ioapics)
                enable_IO_APIC();
-
-       if (!smp_found_config || skip_ioapic_setup || !nr_ioapics)
-               localise_nmi_watchdog();
-#else
-       localise_nmi_watchdog();
 #endif
+
        end_local_APIC_setup();
 
 #ifdef CONFIG_X86_IO_APIC
        if (smp_found_config && !skip_ioapic_setup && nr_ioapics)
                setup_IO_APIC();
-# ifdef CONFIG_X86_64
-       else
+       else {
                nr_ioapics = 0;
-# endif
+               localise_nmi_watchdog();
+       }
+#else
+       localise_nmi_watchdog();
 #endif
 
+       setup_boot_clock();
 #ifdef CONFIG_X86_64
-       setup_boot_APIC_clock();
        check_nmi_watchdog();
-#else
-       setup_boot_clock();
 #endif
 
        return 0;