diff options
| author | Chuck Ebbert <cebbert@redhat.com> | 2010-08-18 20:07:01 -0400 |
|---|---|---|
| committer | Chuck Ebbert <cebbert@redhat.com> | 2010-08-18 20:31:09 -0400 |
| commit | 9b003c30efddde58d39ca798eb9137043244fd2c (patch) | |
| tree | 4ef1c07295e0c2ca361d4d26f0d66f714afd8593 /x86-cpu-fix-regression-in-amd-errata-checking-code.patch | |
| parent | 95f99faff4642ad24b9f62227cbb96cfc4576038 (diff) | |
| download | kernel-9b003c30efddde58d39ca798eb9137043244fd2c.tar.gz kernel-9b003c30efddde58d39ca798eb9137043244fd2c.tar.xz kernel-9b003c30efddde58d39ca798eb9137043244fd2c.zip | |
Fix hangs on boot with some AMD processors
(x86-cpu-fix-regression-in-amd-errata-checking-code.patch)
Drop unused ssb_check_for_sprom.patch
Diffstat (limited to 'x86-cpu-fix-regression-in-amd-errata-checking-code.patch')
| -rw-r--r-- | x86-cpu-fix-regression-in-amd-errata-checking-code.patch | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/x86-cpu-fix-regression-in-amd-errata-checking-code.patch b/x86-cpu-fix-regression-in-amd-errata-checking-code.patch new file mode 100644 index 00000000..dc1f391f --- /dev/null +++ b/x86-cpu-fix-regression-in-amd-errata-checking-code.patch @@ -0,0 +1,29 @@ +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)) && |
