diff options
-rw-r--r-- | arch/x86/kernel/apic_64.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/x86/kernel/apic_64.c b/arch/x86/kernel/apic_64.c index 868ec1deb19..5362cfd30ec 100644 --- a/arch/x86/kernel/apic_64.c +++ b/arch/x86/kernel/apic_64.c | |||
@@ -1209,7 +1209,7 @@ __cpuinit int apic_is_clustered_box(void) | |||
1209 | * will be [4, 0x23] or [8, 0x27] could be thought to | 1209 | * will be [4, 0x23] or [8, 0x27] could be thought to |
1210 | * vsmp box still need checking... | 1210 | * vsmp box still need checking... |
1211 | */ | 1211 | */ |
1212 | if (!is_vsmp_box() && (boot_cpu_data.x86_vendor == X86_VENDOR_AMD)) | 1212 | if ((boot_cpu_data.x86_vendor == X86_VENDOR_AMD) && !is_vsmp_box()) |
1213 | return 0; | 1213 | return 0; |
1214 | 1214 | ||
1215 | bios_cpu_apicid = x86_bios_cpu_apicid_early_ptr; | 1215 | bios_cpu_apicid = x86_bios_cpu_apicid_early_ptr; |
@@ -1249,6 +1249,12 @@ __cpuinit int apic_is_clustered_box(void) | |||
1249 | ++zeros; | 1249 | ++zeros; |
1250 | } | 1250 | } |
1251 | 1251 | ||
1252 | /* ScaleMP vSMPowered boxes have one cluster per board and TSCs are | ||
1253 | * not guaranteed to be synced between boards | ||
1254 | */ | ||
1255 | if (is_vsmp_box() && clusters > 1) | ||
1256 | return 1; | ||
1257 | |||
1252 | /* | 1258 | /* |
1253 | * If clusters > 2, then should be multi-chassis. | 1259 | * If clusters > 2, then should be multi-chassis. |
1254 | * May have to revisit this when multi-core + hyperthreaded CPUs come | 1260 | * May have to revisit this when multi-core + hyperthreaded CPUs come |