summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorHans Rosenfeld <hans.rosenfeld@amd.com>2010-08-18 14:19:50 (GMT)
committerH. Peter Anvin <hpa@zytor.com>2010-08-18 16:16:28 (GMT)
commit07a7795ca2e6e66d00b184efb46bd0e23d90d3fe (patch)
tree79dcc946b66f44498c1c4021420bf74971d74e37 /arch
parentda5cabf80e2433131bf0ed8993abc0f7ea618c73 (diff)
downloadlinux-fsl-qoriq-07a7795ca2e6e66d00b184efb46bd0e23d90d3fe.tar.xz
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>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/cpu/amd.c2
1 files changed, 1 insertions, 1 deletions
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)) &&