diff options
Diffstat (limited to 'arch/x86/kernel/mpparse_32.c')
-rw-r--r-- | arch/x86/kernel/mpparse_32.c | 11 |
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 */ |
76 | physid_mask_t phys_cpu_present_map; | 76 | physid_mask_t phys_cpu_present_map; |
77 | 77 | ||
78 | u8 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 | ||
226 | static void __init MP_bus_info (struct mpc_config_bus *m) | 231 | static void __init MP_bus_info (struct mpc_config_bus *m) |