Patch "x86: Make X86_BUG_FXSAVE_LEAK detectable in CPUID on AMD" has been added to the 4.14-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
x86: Make X86_BUG_FXSAVE_LEAK detectable in CPUID on AMD
to the 4.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
x86-make-x86_bug_fxsave_leak-detectable-in-cpuid-on-amd.patch
and it can be found in the queue-4.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
f2dbad36c55e5d3a91dccbde6e8cae345fe5632fMon Sep 17 00:00:00 2001
From: Rudolf Marek <[email protected]>
Date: Tue, 28 Nov 2017 22:01:06 +0100
Subject: x86: Make X86_BUG_FXSAVE_LEAK detectable in CPUID on AMD
From: Rudolf Marek <[email protected]>
commit f2dbad36c55e5d3a91dccbde6e8cae345fe5632f upstream.
[ Note, this is a Git cherry-pick of the following commit:
2b67799bdf25 ("x86: Make X86_BUG_FXSAVE_LEAK detectable in CPUID on AMD")... for easier x86 PTI code testing and back-porting. ]
The latest AMD AMD64 Architecture Programmer's Manual adds a CPUID feature XSaveErPtr (CPUID_Fn80000008_EBX[2]).
If this feature is set, the FXSAVE, XSAVE, FXSAVEOPT, XSAVEC, XSAVES / FXRSTOR, XRSTOR, XRSTORS always save/restore error pointers, thus making the X86_BUG_FXSAVE_LEAK workaround obsolete on such CPUs.
--- arch/x86/include/asm/cpufeatures.h | 1 + arch/x86/kernel/cpu/amd.c | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-)
arch/x86/include/asm/cpufeatures.h +1 -0
@@ -266,6 +266,7 @@/* AMD-defined CPU features, CPUID level 0x80000008 (EBX), word 13 */ #define X86_FEATURE_CLZERO (13*32+ 0)/* CLZERO instruction */ #define X86_FEATURE_IRPERF (13*32+ 1)/* Instructions Retired Count */ +#define X86_FEATURE_XSAVEERPTR (13*32+ 2)/* Always save/restore FP error pointers */ /* Thermal and Power Management Leaf, CPUID level 0x00000006 (EAX), word 14 */ #define X86_FEATURE_DTHERM (14*32+ 0)/* Digital Thermal Sensor */
arch/x86/kernel/cpu/amd.c +5 -2
@@ -804,8 +804,11 @@ static void init_amd(struct cpuinfo_x86case 0x17 :init_amd_zn (c);break ; } -/* Enable workaround for FXSAVE leak */ -if (c->x86 >=6 ) +/* +* Enable workaround for FXSAVE leak on CPUs +* without a XSaveErPtr feature +*/ +if ((c->x86 >=6 ) && (!cpu_has (c,X86_FEATURE_XSAVEERPTR )))set_cpu_bug (c,X86_BUG_FXSAVE_LEAK );cpu_detect_cache_sizes (c);
Patches currently in stable-queue which might be from [email protected] are
queue-4.14/x86-make-x86_bug_fxsave_leak-detectable-in-cpuid-on-amd.patch