[SRU][N,J][PATCH v3 0/1] disable XSAVES workaround

Bethany Jamison bethany.jamison at canonical.com
Fri Sep 6 17:37:07 UTC 2024


BugLink: https://bugs.launchpad.net/bugs/2077321

SRU Justification:

[Impact]

This patch fixes bug LP#2077321. An older commit (b056346) completely 
disables XSAVES instruction on all AMD ZEN1/2 hardware to avoid a bug
within that instruction (utilizes XSAVEC instruction instead). This 
method of working around this issue is a bit too broad and causes an
issue with migrating QEMU VMs from older kernels that use XSAVES to 
newer kernels with XSAVES disabled. This patch implements a commit
(29ba89f) to improve the workaround. It disables XSAVES only on 
machines that lack a revised piece of microcode that addresses the
XSAVES bug.

[Fix]

Above Commits:
b056346 (x86/CPU/AMD: Disable XSAVES on AMD family 0x17) - https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy/commit/?id=b0563468eeac88ebc70559d52a0b66efc37e4e9d
29ba89f (x86/CPU/AMD: Improve the erratum 1386 workaround) - https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=29ba89f1895285f06c333546882e0c5ae9a6df23

Commit 29ba89f was cleanly cherry-pick to Noble. I had to adjust the 
context for Jammy because J was missing the definition for 'fix_erratum_1386', 
but this should not affect the fix changes.

[Test]
 
Compile tested

[Where problems could occur]

This fix affects those who use x86 processors, an issue with this fix
would be visible to the user via issues migrating QEMU VMs from older 
to newer kernels, or via XSAVEC being used instead of XSAVES in qualified
machines.

v2: adjusted to better match the stable patch format

v3: submited v2 too soon, needed to add impact/fix/test/problems sections

Borislav Petkov (AMD) (1):
  x86/CPU/AMD: Improve the erratum 1386 workaround

 arch/x86/include/asm/cpu_device_id.h |  8 ++++++++
 arch/x86/kernel/cpu/amd.c            | 12 ++++++++++++
 2 files changed, 20 insertions(+)

-- 
2.34.1




More information about the kernel-team mailing list