AVX was mistakenly believed to be dependent on eagerfpu switch. This turns out to be false. The earlier patch should be reverted.
Original patch: http://git.kernel.org/tip/394db20ca240741a08d472173db13d6f6a6e5a28 Signed-off-by: Yu-cheng Yu <yu-cheng...@intel.com> Reported_by: Leonid Shatz <leonid.sh...@ravellosystems.com> Cc: x...@kernel.org Cc: H. Peter Anvin <h...@zytor.com> Cc: Thomas Gleixner <t...@linutronix.de> Cc: Dave Hansen <dave.han...@linux.intel.com> Cc: Ingo Molnar <mi...@redhat.com> Cc: Borislav Petkov <b...@suse.de> Cc: Sai Praneeth Prakhya <sai.praneeth.prak...@intel.com> Cc: Ravi V. Shankar <ravi.v.shan...@intel.com> Cc: Leonid Shatz <leonid.sh...@ravellosystems.com> Cc: Fenghua Yu <fenghua...@intel.com> --- arch/x86/include/asm/fpu/xstate.h | 9 ++++----- arch/x86/kernel/fpu/init.c | 6 ------ 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/arch/x86/include/asm/fpu/xstate.h b/arch/x86/include/asm/fpu/xstate.h index af30fde..f23cd8c 100644 --- a/arch/x86/include/asm/fpu/xstate.h +++ b/arch/x86/include/asm/fpu/xstate.h @@ -20,16 +20,15 @@ /* Supported features which support lazy state saving */ #define XFEATURE_MASK_LAZY (XFEATURE_MASK_FP | \ - XFEATURE_MASK_SSE) - -/* Supported features which require eager state saving */ -#define XFEATURE_MASK_EAGER (XFEATURE_MASK_BNDREGS | \ - XFEATURE_MASK_BNDCSR | \ + XFEATURE_MASK_SSE | \ XFEATURE_MASK_YMM | \ XFEATURE_MASK_OPMASK | \ XFEATURE_MASK_ZMM_Hi256 | \ XFEATURE_MASK_Hi16_ZMM) +/* Supported features which require eager state saving */ +#define XFEATURE_MASK_EAGER (XFEATURE_MASK_BNDREGS | XFEATURE_MASK_BNDCSR) + /* All currently supported features */ #define XCNTXT_MASK (XFEATURE_MASK_LAZY | XFEATURE_MASK_EAGER) diff --git a/arch/x86/kernel/fpu/init.c b/arch/x86/kernel/fpu/init.c index 6d9f0a7..f0ab368 100644 --- a/arch/x86/kernel/fpu/init.c +++ b/arch/x86/kernel/fpu/init.c @@ -300,12 +300,6 @@ u64 __init fpu__get_supported_xfeatures_mask(void) static void __init fpu__clear_eager_fpu_features(void) { setup_clear_cpu_cap(X86_FEATURE_MPX); - setup_clear_cpu_cap(X86_FEATURE_AVX); - setup_clear_cpu_cap(X86_FEATURE_AVX2); - setup_clear_cpu_cap(X86_FEATURE_AVX512F); - setup_clear_cpu_cap(X86_FEATURE_AVX512PF); - setup_clear_cpu_cap(X86_FEATURE_AVX512ER); - setup_clear_cpu_cap(X86_FEATURE_AVX512CD); } /* -- 1.9.1