diff options
author | Yinghai Lu <Yinghai.Lu@Sun.COM> | 2008-02-25 00:36:28 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-04-17 11:40:50 -0400 |
commit | f8fffa458368ed3d57385698f775880db629bd1a (patch) | |
tree | 845bce35fea17284414d973a0fd0ea199d0947a6 /arch/x86/kernel/apic_64.c | |
parent | 34048c9e927d5ae29c6ba802c826370de2a046d2 (diff) |
x86: apic_is_clustered_box for vsmp
quad core 8 socket system will have apic id lifting.the apic id range could
be [4, 0x23]. and apic_is_clustered_box will think that need to three clusters
and that is larger than 2. So it is treated as a clustered_box.
and will get:
Marking TSC unstable due to TSCs unsynchronized
even if the CPUs have X86_FEATURE_CONSTANT_TSC set.
this quick fix will check if the cpu is from AMD.
but vsmp still needs that checking...
this patch is fix to make sure that vsmp not to be passed.
Signed-off-by: Yinghai Lu <yinghai.lu@sun.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/apic_64.c')
-rw-r--r-- | arch/x86/kernel/apic_64.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/kernel/apic_64.c b/arch/x86/kernel/apic_64.c index ac2405ed504d..f6eb01d8923a 100644 --- a/arch/x86/kernel/apic_64.c +++ b/arch/x86/kernel/apic_64.c | |||
@@ -1182,9 +1182,9 @@ __cpuinit int apic_is_clustered_box(void) | |||
1182 | * there is not this kind of box with AMD CPU yet. | 1182 | * there is not this kind of box with AMD CPU yet. |
1183 | * Some AMD box with quadcore cpu and 8 sockets apicid | 1183 | * Some AMD box with quadcore cpu and 8 sockets apicid |
1184 | * will be [4, 0x23] or [8, 0x27] could be thought to | 1184 | * will be [4, 0x23] or [8, 0x27] could be thought to |
1185 | * have three apic_clusters. So go out early. | 1185 | * vsmp box still need checking... |
1186 | */ | 1186 | */ |
1187 | if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD) | 1187 | if (!is_vsmp_box() && (boot_cpu_data.x86_vendor == X86_VENDOR_AMD)) |
1188 | return 0; | 1188 | return 0; |
1189 | 1189 | ||
1190 | bios_cpu_apicid = x86_bios_cpu_apicid_early_ptr; | 1190 | bios_cpu_apicid = x86_bios_cpu_apicid_early_ptr; |