|
@@ -61,7 +61,7 @@ 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
|
|
|
+ * On AMD, 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).
|
|
|
*
|
|
@@ -1915,24 +1915,14 @@ void __cpuinit generic_processor_info(int apicid, int version)
|
|
|
max_physical_apicid = apicid;
|
|
|
|
|
|
#ifdef CONFIG_X86_32
|
|
|
- /*
|
|
|
- * Would be preferable to switch to bigsmp when CONFIG_HOTPLUG_CPU=y
|
|
|
- * but we need to work other dependencies like SMP_SUSPEND etc
|
|
|
- * before this can be done without some confusion.
|
|
|
- * if (CPU_HOTPLUG_ENABLED || num_processors > 8)
|
|
|
- * - Ashok Raj <ashok.raj@intel.com>
|
|
|
- */
|
|
|
- if (max_physical_apicid >= 8) {
|
|
|
- switch (boot_cpu_data.x86_vendor) {
|
|
|
- case X86_VENDOR_INTEL:
|
|
|
- if (!APIC_XAPIC(version)) {
|
|
|
- def_to_bigsmp = 0;
|
|
|
- break;
|
|
|
- }
|
|
|
- /* If P4 and above fall through */
|
|
|
- case X86_VENDOR_AMD:
|
|
|
+ switch (boot_cpu_data.x86_vendor) {
|
|
|
+ case X86_VENDOR_INTEL:
|
|
|
+ if (num_processors > 8)
|
|
|
+ def_to_bigsmp = 1;
|
|
|
+ break;
|
|
|
+ case X86_VENDOR_AMD:
|
|
|
+ if (max_physical_apicid >= 8)
|
|
|
def_to_bigsmp = 1;
|
|
|
- }
|
|
|
}
|
|
|
#endif
|
|
|
|