aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/mpparse.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2010-08-31 03:45:21 -0400
committerIngo Molnar <mingo@elte.hu>2010-08-31 03:45:46 -0400
commitdaab7fc734a53fdeaf844b7c03053118ad1769da (patch)
tree575deb3cdcc6dda562acaed6f7c29bc81ae01cf2 /arch/x86/kernel/mpparse.c
parent774ea0bcb27f57b6fd521b3b6c43237782fed4b9 (diff)
parent2bfc96a127bc1cc94d26bfaa40159966064f9c8c (diff)
Merge commit 'v2.6.36-rc3' into x86/memblock
Conflicts: arch/x86/kernel/trampoline.c mm/memblock.c Merge reason: Resolve the conflicts, update to latest upstream. Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/mpparse.c')
-rw-r--r--arch/x86/kernel/mpparse.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c
index 8252545ae6f3..9af64d9c4b67 100644
--- a/arch/x86/kernel/mpparse.c
+++ b/arch/x86/kernel/mpparse.c
@@ -275,6 +275,18 @@ static void __init smp_dump_mptable(struct mpc_table *mpc, unsigned char *mpt)
275 275
276void __init default_smp_read_mpc_oem(struct mpc_table *mpc) { } 276void __init default_smp_read_mpc_oem(struct mpc_table *mpc) { }
277 277
278static void __init smp_register_lapic_address(unsigned long address)
279{
280 mp_lapic_addr = address;
281
282 set_fixmap_nocache(FIX_APIC_BASE, address);
283 if (boot_cpu_physical_apicid == -1U) {
284 boot_cpu_physical_apicid = read_apic_id();
285 apic_version[boot_cpu_physical_apicid] =
286 GET_APIC_VERSION(apic_read(APIC_LVR));
287 }
288}
289
278static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early) 290static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early)
279{ 291{
280 char str[16]; 292 char str[16];
@@ -296,6 +308,10 @@ static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early)
296 if (early) 308 if (early)
297 return 1; 309 return 1;
298 310
311 /* Initialize the lapic mapping */
312 if (!acpi_lapic)
313 smp_register_lapic_address(mpc->lapic);
314
299 if (mpc->oemptr) 315 if (mpc->oemptr)
300 x86_init.mpparse.smp_read_mpc_oem(mpc); 316 x86_init.mpparse.smp_read_mpc_oem(mpc);
301 317