diff options
author | Suresh Siddha <suresh.b.siddha@intel.com> | 2010-08-27 14:09:50 -0400 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2010-09-15 20:37:10 -0400 |
commit | fa47f7e52874683a9659df2f1f143105f676dc0f (patch) | |
tree | 26e18f3c0dce1873fcffeba50cee18769e83e079 /arch/x86/kernel/smpboot.c | |
parent | 62a92f4c69cd1d9361ad8c16be1dd16e6821bc15 (diff) |
x86, x2apic: Simplify apic init in SMP and UP builds
Move enable_IR_x2apic() inside the default_setup_apic_routing(),
and for SMP platforms, move the default_setup_apic_routing() after
smp_sanity_check(). This cleans up the code that tries to avoid multiple
calls to default_setup_apic_routing() when smp_sanity_check() fails (which
goes through the APIC_init_uniprocessor() path).
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
LKML-Reference: <20100827181049.173087246@sbsiddha-MOBL3.sc.intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/kernel/smpboot.c')
-rw-r--r-- | arch/x86/kernel/smpboot.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index 8b3bfc4dd708..87a8c6b00f8d 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c | |||
@@ -1109,8 +1109,6 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus) | |||
1109 | } | 1109 | } |
1110 | set_cpu_sibling_map(0); | 1110 | set_cpu_sibling_map(0); |
1111 | 1111 | ||
1112 | enable_IR_x2apic(); | ||
1113 | default_setup_apic_routing(); | ||
1114 | 1112 | ||
1115 | if (smp_sanity_check(max_cpus) < 0) { | 1113 | if (smp_sanity_check(max_cpus) < 0) { |
1116 | printk(KERN_INFO "SMP disabled\n"); | 1114 | printk(KERN_INFO "SMP disabled\n"); |
@@ -1118,6 +1116,8 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus) | |||
1118 | goto out; | 1116 | goto out; |
1119 | } | 1117 | } |
1120 | 1118 | ||
1119 | default_setup_apic_routing(); | ||
1120 | |||
1121 | preempt_disable(); | 1121 | preempt_disable(); |
1122 | if (read_apic_id() != boot_cpu_physical_apicid) { | 1122 | if (read_apic_id() != boot_cpu_physical_apicid) { |
1123 | panic("Boot APIC ID in local APIC unexpected (%d vs %d)", | 1123 | panic("Boot APIC ID in local APIC unexpected (%d vs %d)", |