]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
KVM: nVMX: Add consistency check for TPR_THRESHOLD[31:4]!=0 without VID
authorSean Christopherson <seanjc@google.com>
Fri, 19 Sep 2025 00:59:51 +0000 (17:59 -0700)
committerSean Christopherson <seanjc@google.com>
Fri, 17 Oct 2025 22:11:26 +0000 (15:11 -0700)
Add a missing consistency check on the TPR Threshold.  Per the SDM

  If the "use TPR shadow" VM-execution control is 1 and the "virtual-
  interrupt delivery" VM-execution control is 0, bits 31:4 of the TPR
  threshold VM-execution control field must be 0.

Note, nested_vmx_check_tpr_shadow_controls() bails early if "use TPR
shadow" is 0.

Link: https://lore.kernel.org/r/20250919005955.1366256-6-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/vmx/nested.c

index 0a4b4e790f9f07f3aa455fc1450b862a0303792c..ffd2628b9c1eab45751fd54ed82f6ea1a45e0aa6 100644 (file)
@@ -555,6 +555,9 @@ static int nested_vmx_check_tpr_shadow_controls(struct kvm_vcpu *vcpu,
        if (CC(!page_address_valid(vcpu, vmcs12->virtual_apic_page_addr)))
                return -EINVAL;
 
+       if (CC(!nested_cpu_has_vid(vmcs12) && vmcs12->tpr_threshold >> 4))
+               return -EINVAL;
+
        return 0;
 }