9b003c30ef
(x86-cpu-fix-regression-in-amd-errata-checking-code.patch) Drop unused ssb_check_for_sprom.patch
30 lines
1.2 KiB
Diff
30 lines
1.2 KiB
Diff
From: Hans Rosenfeld <hans.rosenfeld@amd.com>
|
|
Date: Wed, 18 Aug 2010 14:19:50 +0000 (+0200)
|
|
Subject: x86, cpu: Fix regression in AMD errata checking code
|
|
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fmingo%2Flinux-2.6-x86.git;a=commitdiff_plain;h=07a7795ca2e6e66d00b184efb46bd0e23d90d3fe
|
|
|
|
x86, cpu: Fix regression in AMD errata checking code
|
|
|
|
A bug in the family-model-stepping matching code caused the presence of
|
|
errata to go undetected when OSVW was not used. This causes hangs on
|
|
some K8 systems because the E400 workaround is not enabled.
|
|
|
|
Signed-off-by: Hans Rosenfeld <hans.rosenfeld@amd.com>
|
|
LKML-Reference: <1282141190-930137-1-git-send-email-hans.rosenfeld@amd.com>
|
|
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
---
|
|
|
|
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
|
|
index 60a57b1..ba5f62f 100644
|
|
--- a/arch/x86/kernel/cpu/amd.c
|
|
+++ b/arch/x86/kernel/cpu/amd.c
|
|
@@ -669,7 +669,7 @@ bool cpu_has_amd_erratum(const int *erratum)
|
|
}
|
|
|
|
/* OSVW unavailable or ID unknown, match family-model-stepping range */
|
|
- ms = (cpu->x86_model << 8) | cpu->x86_mask;
|
|
+ ms = (cpu->x86_model << 4) | cpu->x86_mask;
|
|
while ((range = *erratum++))
|
|
if ((cpu->x86 == AMD_MODEL_RANGE_FAMILY(range)) &&
|
|
(ms >= AMD_MODEL_RANGE_START(range)) &&
|