From 35710e0b91f19d2b5e84916836ec2847f4710dee Mon Sep 17 00:00:00 2001 From: Glauber de Oliveira Costa Date: Wed, 19 Mar 2008 14:25:24 -0300 Subject: [PATCH] --- yaml --- r: 88809 b: refs/heads/master c: 73bf102b1cadc53d418df02ba687769a9f916a6d h: refs/heads/master i: 88807: 73c1a75ddce32c74891c73c0c14d2e77a45b32aa v: v3 --- [refs] | 2 +- trunk/arch/x86/kernel/mpparse_32.c | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index aa8b96ba330b..db5cfdbc5546 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4fe29a85642544503cf81e9cf251ef0f4e65b162 +refs/heads/master: 73bf102b1cadc53d418df02ba687769a9f916a6d diff --git a/trunk/arch/x86/kernel/mpparse_32.c b/trunk/arch/x86/kernel/mpparse_32.c index 1b1fd6e920e6..6ea97163701f 100644 --- a/trunk/arch/x86/kernel/mpparse_32.c +++ b/trunk/arch/x86/kernel/mpparse_32.c @@ -75,8 +75,6 @@ unsigned disabled_cpus __cpuinitdata; /* Bitmask of physically existing CPUs */ physid_mask_t phys_cpu_present_map; -u8 bios_cpu_apicid[NR_CPUS] = { [0 ... NR_CPUS-1] = BAD_APICID }; - /* * Intel MP BIOS table parsing routines: */ @@ -220,7 +218,14 @@ static void __cpuinit MP_processor_info (struct mpc_config_processor *m) def_to_bigsmp = 1; } } - bios_cpu_apicid[num_processors - 1] = m->mpc_apicid; + /* are we being called early in kernel startup? */ + if (x86_cpu_to_apicid_early_ptr) { + u16 *bios_cpu_apicid = x86_bios_cpu_apicid_early_ptr; + bios_cpu_apicid[num_processors - 1] = m->mpc_apicid; + } else { + int cpu = num_processors - 1; + per_cpu(x86_bios_cpu_apicid, cpu) = m->mpc_apicid; + } } static void __init MP_bus_info (struct mpc_config_bus *m)