x86: fill cpu to apicid and present map in mpparse, fix
authorIngo Molnar <mingo@elte.hu>
Wed, 19 Mar 2008 19:26:15 +0000 (20:26 +0100)
committerIngo Molnar <mingo@elte.hu>
Thu, 17 Apr 2008 15:41:01 +0000 (17:41 +0200)
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/mpparse_32.c

index a0cec74b80ef3fe7999e5b0536a0420914809a12..000b51b78fbdc5a115577ef01b74c05ca3fc311a 100644 (file)
@@ -75,6 +75,10 @@ unsigned disabled_cpus __cpuinitdata;
 /* Bitmask of physically existing CPUs */
 physid_mask_t phys_cpu_present_map;
 
+#ifndef CONFIG_SMP
+DEFINE_PER_CPU(u16, x86_bios_cpu_apicid) = BAD_APICID;
+#endif
+
 /*
  * Intel MP BIOS table parsing routines:
  */
@@ -229,6 +233,7 @@ static void __cpuinit MP_processor_info (struct mpc_config_processor *m)
                        def_to_bigsmp = 1;
                }
        }
+#ifdef CONFIG_SMP
        /* are we being called early in kernel startup? */
        if (x86_cpu_to_apicid_early_ptr) {
                u16 *cpu_to_apicid = x86_cpu_to_apicid_early_ptr;
@@ -240,6 +245,7 @@ static void __cpuinit MP_processor_info (struct mpc_config_processor *m)
                per_cpu(x86_cpu_to_apicid, cpu) = m->mpc_apicid;
                per_cpu(x86_bios_cpu_apicid, cpu) = m->mpc_apicid;
        }
+#endif
        cpu_set(cpu, cpu_present_map);
 }