Fix stalls on AMD machines with C1E caused by 2.6.35.13 (#704059)

This commit is contained in:
Chuck Ebbert 2011-05-12 12:37:18 -04:00
parent 2c4c81ad30
commit ca79828415
2 changed files with 54 additions and 1 deletions

View File

@ -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 <cebbert@redhat.com> 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 <cebbert@redhat.com> 2.6.35.13-91
- [SCSI] mpt2sas: prevent heap overflows and unchecked reads
(CVE-2011-1494, CVE-2011-1495)

View File

@ -0,0 +1,44 @@
From e20a2d205c05cef6b5783df339a7d54adeb50962 Mon Sep 17 00:00:00 2001
From: Boris Ostrovsky <ostr@amd64.org>
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 <ostr@amd64.org>
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 <jvpeetz@web.de>
Tested-by: Joerg-Volker Peetz <jvpeetz@web.de>
Acked-by: Borislav Petkov <borislav.petkov@amd.com>
Signed-off-by: Boris Ostrovsky <Boris.Ostrovsky@amd.com>
Link: http://lkml.kernel.org/r/1304113663-6586-1-git-send-email-ostr@amd64.org
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
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));