From: H. Peter Anvin Date: Wed, 25 Feb 2009 00:11:51 +0000 (-0800) Subject: Merge branch 'x86/core' into x86/mce2 X-Git-Tag: accepted/tizen/common/20141203.182822~15839^2~28^3~6^3~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=638bee71c83a2837b48062fdc5b222163cf53d79;p=platform%2Fkernel%2Flinux-arm64.git Merge branch 'x86/core' into x86/mce2 --- 638bee71c83a2837b48062fdc5b222163cf53d79 diff --cc arch/x86/kernel/apic/apic.c index 57b5377,f9cecdf..30909a2 --- a/arch/x86/kernel/apic/apic.c +++ b/arch/x86/kernel/apic/apic.c @@@ -14,52 -14,69 +14,70 @@@ * Mikael Pettersson : PM converted to driver model. */ - #include - - #include - #include - #include - #include - #include #include - #include - #include - #include - #include + #include #include + #include + #include + #include + #include + #include #include - #include + #include + #include + #include #include - #include - #include + #include + #include + #include #include - #include + #include + #include + #include #include - #include #include - #include - #include - #include - #include #include - #include + #include #include #include - #include + #include + #include + #include + #include #include +#include - #include - #include - #include + unsigned int num_processors; + + unsigned disabled_cpus __cpuinitdata; + + /* Processor that is doing the boot up */ + unsigned int boot_cpu_physical_apicid = -1U; + + /* + * The highest APIC ID seen during enumeration. + * + * This determines the messaging protocol we can use: if all APIC IDs + * are in the 0 ... 7 range, then we can use logical addressing which + * has some performance advantages (better broadcasting). + * + * If there's an APIC ID above 8, we use physical addressing. + */ + unsigned int max_physical_apicid; /* - * Sanity check + * Bitmask of physically existing CPUs: */ - #if ((SPURIOUS_APIC_VECTOR & 0x0F) != 0x0F) - # error SPURIOUS_APIC_VECTOR definition error - #endif + physid_mask_t phys_cpu_present_map; + + /* + * Map cpu index to physical APIC ID + */ + DEFINE_EARLY_PER_CPU(u16, x86_cpu_to_apicid, BAD_APICID); + DEFINE_EARLY_PER_CPU(u16, x86_bios_cpu_apicid, BAD_APICID); + EXPORT_EARLY_PER_CPU_SYMBOL(x86_cpu_to_apicid); + EXPORT_EARLY_PER_CPU_SYMBOL(x86_bios_cpu_apicid); #ifdef CONFIG_X86_32 /*