aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/smpboot_64.c
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2008-01-30 07:30:40 -0500
committerIngo Molnar <mingo@elte.hu>2008-01-30 07:30:40 -0500
commit739f33b38bf88312447e38ae8b7ac3acdbb72a6b (patch)
tree2d5e09f00175f7078f519609c20624a8e77f0e5b /arch/x86/kernel/smpboot_64.c
parent3f6e5a12b8384ab9816ba6703f4b4be87ac94b5a (diff)
x86: untable __init references between IO data
Earlier patch added IO APIC setup into local APIC setup. This caused modpost warnings. Fix them by untangling setup_local_APIC() and splitting it into smaller functions. The IO APIC initialization is only called for the BP init. Also removed some outdated debugging code and minor cleanup. [ tglx: arch/x86 adaptation ] Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/kernel/smpboot_64.c')
-rw-r--r--arch/x86/kernel/smpboot_64.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/x86/kernel/smpboot_64.c b/arch/x86/kernel/smpboot_64.c
index 7552db9ee9ff..ddefb38c53fb 100644
--- a/arch/x86/kernel/smpboot_64.c
+++ b/arch/x86/kernel/smpboot_64.c
@@ -210,6 +210,7 @@ void __cpuinit smp_callin(void)
210 210
211 Dprintk("CALLIN, before setup_local_APIC().\n"); 211 Dprintk("CALLIN, before setup_local_APIC().\n");
212 setup_local_APIC(); 212 setup_local_APIC();
213 end_local_APIC_setup();
213 214
214 /* 215 /*
215 * Get our bogomips. 216 * Get our bogomips.
@@ -884,6 +885,13 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
884 */ 885 */
885 setup_local_APIC(); 886 setup_local_APIC();
886 887
888 /*
889 * Enable IO APIC before setting up error vector
890 */
891 if (!skip_ioapic_setup && nr_ioapics)
892 enable_IO_APIC();
893 end_local_APIC_setup();
894
887 if (GET_APIC_ID(apic_read(APIC_ID)) != boot_cpu_id) { 895 if (GET_APIC_ID(apic_read(APIC_ID)) != boot_cpu_id) {
888 panic("Boot APIC ID in local APIC unexpected (%d vs %d)", 896 panic("Boot APIC ID in local APIC unexpected (%d vs %d)",
889 GET_APIC_ID(apic_read(APIC_ID)), boot_cpu_id); 897 GET_APIC_ID(apic_read(APIC_ID)), boot_cpu_id);