aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlauber de Oliveira Costa <gcosta@redhat.com>2008-03-19 13:25:24 -0400
committerIngo Molnar <mingo@elte.hu>2008-04-17 11:41:01 -0400
commit73bf102b1cadc53d418df02ba687769a9f916a6d (patch)
tree8ce9732152e86885fdee65d879619a397f671768
parent4fe29a85642544503cf81e9cf251ef0f4e65b162 (diff)
x86: fill bios cpu to apicid maps
We fill the per-cpu (or array) that maps bios cpu id to apicid in mpparse_32.c, the way x86_64 does Signed-off-by: Glauber Costa <gcosta@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--arch/x86/kernel/mpparse_32.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/arch/x86/kernel/mpparse_32.c b/arch/x86/kernel/mpparse_32.c
index 1b1fd6e920e6..6ea97163701f 100644
--- a/arch/x86/kernel/mpparse_32.c
+++ b/arch/x86/kernel/mpparse_32.c
@@ -75,8 +75,6 @@ unsigned disabled_cpus __cpuinitdata;
75/* Bitmask of physically existing CPUs */ 75/* Bitmask of physically existing CPUs */
76physid_mask_t phys_cpu_present_map; 76physid_mask_t phys_cpu_present_map;
77 77
78u8 bios_cpu_apicid[NR_CPUS] = { [0 ... NR_CPUS-1] = BAD_APICID };
79
80/* 78/*
81 * Intel MP BIOS table parsing routines: 79 * Intel MP BIOS table parsing routines:
82 */ 80 */
@@ -220,7 +218,14 @@ static void __cpuinit MP_processor_info (struct mpc_config_processor *m)
220 def_to_bigsmp = 1; 218 def_to_bigsmp = 1;
221 } 219 }
222 } 220 }
223 bios_cpu_apicid[num_processors - 1] = m->mpc_apicid; 221 /* are we being called early in kernel startup? */
222 if (x86_cpu_to_apicid_early_ptr) {
223 u16 *bios_cpu_apicid = x86_bios_cpu_apicid_early_ptr;
224 bios_cpu_apicid[num_processors - 1] = m->mpc_apicid;
225 } else {
226 int cpu = num_processors - 1;
227 per_cpu(x86_bios_cpu_apicid, cpu) = m->mpc_apicid;
228 }
224} 229}
225 230
226static void __init MP_bus_info (struct mpc_config_bus *m) 231static void __init MP_bus_info (struct mpc_config_bus *m)