[kernel] Fix hangs on boot with some AMD processors

Chuck Ebbert cebbert at fedoraproject.org
Thu Aug 19 00:31:57 UTC 2010


commit 9b003c30efddde58d39ca798eb9137043244fd2c
Author: Chuck Ebbert <cebbert at redhat.com>
Date:   Wed Aug 18 20:07:01 2010 -0400

    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

 kernel.spec                                        |   14 +-
 ssb_check_for_sprom.patch                          |  155 --------------------
 ...ix-regression-in-amd-errata-checking-code.patch |   29 ++++
 3 files changed, 38 insertions(+), 160 deletions(-)
---
diff --git a/kernel.spec b/kernel.spec
index f4eabe4..3873b6d 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -688,7 +688,7 @@ Patch12017: prevent-runtime-conntrack-changes.patch
 
 Patch12018: neuter_intel_microcode_load.patch
 
-Patch12030: ssb_check_for_sprom.patch
+Patch12019: x86-cpu-fix-regression-in-amd-errata-checking-code.patch
 
 %endif
 
@@ -1256,8 +1256,7 @@ ApplyPatch disable-i8042-check-on-apple-mac.patch
 
 ApplyPatch neuter_intel_microcode_load.patch
 
-# rhbz#533746
-#ApplyPatch ssb_check_for_sprom.patch
+ApplyPatch x86-cpu-fix-regression-in-amd-errata-checking-code.patch
 
 # END OF PATCH APPLICATIONS
 
@@ -1855,8 +1854,8 @@ fi
 # and build.
 
 #  ___________________________________________________________
-# / This branch is for Fedora 14. You probably want to commit \
-# \ to the F-13 branch instead, or in addition to this one.   /
+# / This branch is for Fedora 15. You probably want to commit \
+# \ to the F-14 branch instead, or in addition to this one.   /
 #  -----------------------------------------------------------
 #         \   ^__^
 #          \  (@@)\_______
@@ -1865,6 +1864,11 @@ fi
 #                 ||     ||
 
 %changelog
+* Wed Aug 18 2010 Chuck Ebbert <cebbert at redhat.com> - 2.6.36-0.3.rc1.git1
+- 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
+
 * Wed Aug 18 2010 Dave Jones <davej at redhat.com>
 - systemd is dependant upon autofs, so build it in instead of modular.
 
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 0000000..dc1f391
--- /dev/null
+++ b/x86-cpu-fix-regression-in-amd-errata-checking-code.patch
@@ -0,0 +1,29 @@
+From: Hans Rosenfeld <hans.rosenfeld at 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 at amd.com>
+LKML-Reference: <1282141190-930137-1-git-send-email-hans.rosenfeld at amd.com>
+Signed-off-by: H. Peter Anvin <hpa at 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)) &&


More information about the scm-commits mailing list