Patch "KVM: x86: Report deprecated x87 features in supported CPUID" has been added to the 5.16-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    KVM: x86: Report deprecated x87 features in supported CPUID

to the 5.16-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:
     kvm-x86-report-deprecated-x87-features-in-supported-.patch
and it can be found in the queue-5.16 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 2e31ed76802fa7e7dd8436a78b8769af7c7457c5
Author: Jim Mattson <jmattson@xxxxxxxxxx>
Date:   Thu Feb 3 16:13:48 2022 -0800

    KVM: x86: Report deprecated x87 features in supported CPUID
    
    [ Upstream commit e3bcfda012edd3564e12551b212afbd2521a1f68 ]
    
    CPUID.(EAX=7,ECX=0):EBX.FDP_EXCPTN_ONLY[bit 6] and
    CPUID.(EAX=7,ECX=0):EBX.ZERO_FCS_FDS[bit 13] are "defeature"
    bits. Unlike most of the other CPUID feature bits, these bits are
    clear if the features are present and set if the features are not
    present. These bits should be reported in KVM_GET_SUPPORTED_CPUID,
    because if these bits are set on hardware, they cannot be cleared in
    the guest CPUID. Doing so would claim guest support for a feature that
    the hardware doesn't support and that can't be efficiently emulated.
    
    Of course, any software (e.g WIN87EM.DLL) expecting these features to
    be present likely predates these CPUID feature bits and therefore
    doesn't know to check for them anyway.
    
    Aaron Lewis added the corresponding X86_FEATURE macros in
    commit cbb99c0f5887 ("x86/cpufeatures: Add FDP_EXCPTN_ONLY and
    ZERO_FCS_FDS"), with the intention of reporting these bits in
    KVM_GET_SUPPORTED_CPUID, but I was unable to find a proposed patch on
    the kvm list.
    
    Opportunistically reordered the CPUID_7_0_EBX capability bits from
    least to most significant.
    
    Cc: Aaron Lewis <aaronlewis@xxxxxxxxxx>
    Signed-off-by: Jim Mattson <jmattson@xxxxxxxxxx>
    Message-Id: <20220204001348.2844660-1-jmattson@xxxxxxxxxx>
    Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
index add8f58d686e3..bf18679757c70 100644
--- a/arch/x86/kvm/cpuid.c
+++ b/arch/x86/kvm/cpuid.c
@@ -532,12 +532,13 @@ void kvm_set_cpu_caps(void)
 	);
 
 	kvm_cpu_cap_mask(CPUID_7_0_EBX,
-		F(FSGSBASE) | F(SGX) | F(BMI1) | F(HLE) | F(AVX2) | F(SMEP) |
-		F(BMI2) | F(ERMS) | F(INVPCID) | F(RTM) | 0 /*MPX*/ | F(RDSEED) |
-		F(ADX) | F(SMAP) | F(AVX512IFMA) | F(AVX512F) | F(AVX512PF) |
-		F(AVX512ER) | F(AVX512CD) | F(CLFLUSHOPT) | F(CLWB) | F(AVX512DQ) |
-		F(SHA_NI) | F(AVX512BW) | F(AVX512VL) | 0 /*INTEL_PT*/
-	);
+		F(FSGSBASE) | F(SGX) | F(BMI1) | F(HLE) | F(AVX2) |
+		F(FDP_EXCPTN_ONLY) | F(SMEP) | F(BMI2) | F(ERMS) | F(INVPCID) |
+		F(RTM) | F(ZERO_FCS_FDS) | 0 /*MPX*/ | F(AVX512F) |
+		F(AVX512DQ) | F(RDSEED) | F(ADX) | F(SMAP) | F(AVX512IFMA) |
+		F(CLFLUSHOPT) | F(CLWB) | 0 /*INTEL_PT*/ | F(AVX512PF) |
+		F(AVX512ER) | F(AVX512CD) | F(SHA_NI) | F(AVX512BW) |
+		F(AVX512VL));
 
 	kvm_cpu_cap_mask(CPUID_7_ECX,
 		F(AVX512VBMI) | F(LA57) | F(PKU) | 0 /*OSPKE*/ | F(RDPID) |



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux