From ca79828415fc8593d63449546618d391768d1016 Mon Sep 17 00:00:00 2001 From: Chuck Ebbert Date: May 12 2011 16:37:18 +0000 Subject: Fix stalls on AMD machines with C1E caused by 2.6.35.13 (#704059) --- diff --git a/kernel.spec b/kernel.spec index 9c14ca7..ff757ee 100644 --- a/kernel.spec +++ b/kernel.spec @@ -48,7 +48,7 @@ Summary: The Linux kernel # reset this by hand to 1 (or to 0 and then use rpmdev-bumpspec). # scripts/rebase.sh should be made to do that for you, actually. # -%global baserelease 91 +%global baserelease 92 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -843,6 +843,9 @@ Patch13960: scsi-mpt2sas-prevent-heap-overflows-and-unchecked-reads.patch Patch13961: revert-incomplete-af_netlink-add-needed-scm-destroy-after-scm-send.patch Patch13962: af_netlink-add-needed-scm_destroy-after-scm_send.patch +# fix regression causing stalls on AMD processors in 2.6.35.13 +Patch13963: x86-amd-fix-apic-timer-erratum-400-affecting-k8-rev.a-e-processors.patch + %endif BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root @@ -1585,6 +1588,9 @@ ApplyPatch scsi-mpt2sas-prevent-heap-overflows-and-unchecked-reads.patch ApplyPatch revert-incomplete-af_netlink-add-needed-scm-destroy-after-scm-send.patch ApplyPatch af_netlink-add-needed-scm_destroy-after-scm_send.patch +# fix regression causing stalls on AMD processors in 2.6.35.13 +ApplyPatch x86-amd-fix-apic-timer-erratum-400-affecting-k8-rev.a-e-processors.patch + # END OF PATCH APPLICATIONS %endif @@ -2171,6 +2177,9 @@ fi # and build. %changelog +* Thu May 12 2011 Chuck Ebbert 2.6.35.13-92 +- Fix stalls on AMD machines with C1E caused by 2.6.35.13 (#704059) + * Tue May 03 2011 Chuck Ebbert 2.6.35.13-91 - [SCSI] mpt2sas: prevent heap overflows and unchecked reads (CVE-2011-1494, CVE-2011-1495) diff --git a/x86-amd-fix-apic-timer-erratum-400-affecting-k8-rev.a-e-processors.patch b/x86-amd-fix-apic-timer-erratum-400-affecting-k8-rev.a-e-processors.patch new file mode 100644 index 0000000..a87764e --- /dev/null +++ b/x86-amd-fix-apic-timer-erratum-400-affecting-k8-rev.a-e-processors.patch @@ -0,0 +1,44 @@ +From e20a2d205c05cef6b5783df339a7d54adeb50962 Mon Sep 17 00:00:00 2001 +From: Boris Ostrovsky +Date: Fri, 29 Apr 2011 17:47:43 -0400 +Subject: x86, AMD: Fix APIC timer erratum 400 affecting K8 Rev.A-E processors + +From: Boris Ostrovsky + +commit e20a2d205c05cef6b5783df339a7d54adeb50962 upstream. + +Older AMD K8 processors (Revisions A-E) are affected by erratum +400 (APIC timer interrupts don't occur in C states greater than +C1). This, for example, means that X86_FEATURE_ARAT flag should +not be set for these parts. + +This addresses regression introduced by commit +b87cf80af3ba4b4c008b4face3c68d604e1715c6 ("x86, AMD: Set ARAT +feature on AMD processors") where the system may become +unresponsive until external interrupt (such as keyboard input) +occurs. This results, for example, in time not being reported +correctly, lack of progress on the system and other lockups. + +Reported-by: Joerg-Volker Peetz +Tested-by: Joerg-Volker Peetz +Acked-by: Borislav Petkov +Signed-off-by: Boris Ostrovsky +Link: http://lkml.kernel.org/r/1304113663-6586-1-git-send-email-ostr@amd64.org +Signed-off-by: Ingo Molnar +Signed-off-by: Greg Kroah-Hartman + +--- + arch/x86/kernel/cpu/amd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/x86/kernel/cpu/amd.c ++++ b/arch/x86/kernel/cpu/amd.c +@@ -681,7 +681,7 @@ cpu_dev_register(amd_cpu_dev); + */ + + const int amd_erratum_400[] = +- AMD_OSVW_ERRATUM(1, AMD_MODEL_RANGE(0xf, 0x41, 0x2, 0xff, 0xf), ++ AMD_OSVW_ERRATUM(1, AMD_MODEL_RANGE(0x0f, 0x4, 0x2, 0xff, 0xf), + AMD_MODEL_RANGE(0x10, 0x2, 0x1, 0xff, 0xf)); + +