| 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 |
| @@ -651,7 +651,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)); |
| |
| |