summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAndi Kleen2006-02-26 04:18:31 +0100
committerLinus Torvalds2006-02-26 18:53:30 +0100
commit13a229abc25640813f1480c0478dfc6bdbc1c19e (patch)
treebdb9da6ba327bd4f6ee64aa3ca1548670be395f2 /include
parent[PATCH] x86_64: Check for bad elf entry address. (diff)
downloadkernel-qcow2-linux-13a229abc25640813f1480c0478dfc6bdbc1c19e.tar.gz
kernel-qcow2-linux-13a229abc25640813f1480c0478dfc6bdbc1c19e.tar.xz
kernel-qcow2-linux-13a229abc25640813f1480c0478dfc6bdbc1c19e.zip
[PATCH] x86_64: Only do the clustered systems have unsynchronized TSC assumption on IBM systems
Big Unisys systems have multiple clusters too, but they have an synchronized TSC. I'm using the SMBIOS to check for vendor == IBM. Cc: Chris McDermott <lcm@us.ibm.com> Cc: "Protasevich, Natalie" <Natalie.Protasevich@unisys.com> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r--include/asm-x86_64/acpi.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/asm-x86_64/acpi.h b/include/asm-x86_64/acpi.h
index aa1c7b2e438c..e2b9923189a0 100644
--- a/include/asm-x86_64/acpi.h
+++ b/include/asm-x86_64/acpi.h
@@ -164,6 +164,20 @@ extern u8 x86_acpiid_to_apicid[];
extern int acpi_skip_timer_override;
+extern int unsync_tsc_on_multicluster;
+
+static inline int acpi_madt_oem_check(char *oem, char *productid)
+{
+ /* Copied from i386. Probably has too many entries. */
+ if (!strncmp(oem, "IBM ENSW", 8) &&
+ (!strncmp(productid, "VIGIL SMP", 9)
+ || !strncmp(productid, "EXA", 3)
+ || !strncmp(productid, "RUTHLESS SMP", 12))) {
+ unsync_tsc_on_multicluster = 1;
+ }
+ return 0;
+}
+
#endif /*__KERNEL__*/
#endif /*_ASM_ACPI_H*/