Add the rest of the fix for bug #704059

This commit is contained in:
Chuck Ebbert 2011-05-20 23:24:59 -04:00
parent 64c2b6747d
commit dd4a4083bb
2 changed files with 24 additions and 1 deletions

View File

@ -845,6 +845,7 @@ 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-arat-feature-setting-again.patch
Patch13964: x86-amd-arat-bug-on-sempron-workaround.patch
Patch13969: scsi_dh_hp_sw-fix-deadlock-in-start_stop_endio.patch
@ -1595,6 +1596,7 @@ 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-arat-feature-setting-again.patch
ApplyPatch x86-amd-arat-bug-on-sempron-workaround.patch
ApplyPatch scsi_dh_hp_sw-fix-deadlock-in-start_stop_endio.patch
@ -2187,7 +2189,10 @@ fi
# and build.
%changelog
* Wed May 18 2011 Chuck Ebbert <cebbert@redhat.com> 2.6.35.13-92
* Fri May 20 2011 Chuck Ebbert <cebbert@redhat.com> 2.6.35.13-92
- Add the rest of the fix for bug #704059
* Wed May 18 2011 Chuck Ebbert <cebbert@redhat.com>
- Fix cifs bug in 2.6.35.13 with old Windows servers (#704125)
- Revert broken fixes for #704059, add proper partial fix.

View File

@ -0,0 +1,18 @@
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -724,6 +724,15 @@ bool cpu_has_amd_erratum(const int *erra
if (cpu->x86_vendor != X86_VENDOR_AMD)
return false;
+ /*
+ * Temporary workaround for ARAT bug on Sempron.
+ * The BIOS clears the bit in OSVW, so the check
+ * fails, then ARAT gets set and when the processor
+ * uses C3 it hangs. Always return true for that CPU.
+ */
+ if (cpu->x86 == 0x10 && cpu->x86_model == 6 && cpu->x86_mask == 2)
+ return true;
+
if (osvw_id >= 0 && osvw_id < 65536 &&
cpu_has(cpu, X86_FEATURE_OSVW)) {
u64 osvw_len;