]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
Merge tag 'kvm-x86-vmx-6.12' of https://github.com/kvm-x86/linux into HEAD
authorPaolo Bonzini <pbonzini@redhat.com>
Sat, 14 Sep 2024 13:56:06 +0000 (09:56 -0400)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 17 Sep 2024 16:41:23 +0000 (12:41 -0400)
KVM VMX changes for 6.12:

 - Set FINAL/PAGE in the page fault error code for EPT Violations if and only
   if the GVA is valid.  If the GVA is NOT valid, there is no guest-side page
   table walk and so stuffing paging related metadata is nonsensical.

 - Fix a bug where KVM would incorrectly synthesize a nested VM-Exit instead of
   emulating posted interrupt delivery to L2.

 - Add a lockdep assertion to detect unsafe accesses of vmcs12 structures.

 - Harden eVMCS loading against an impossible NULL pointer deref (really truly
   should be impossible).

 - Minor SGX fix and a cleanup.

1  2 
Documentation/virt/kvm/api.rst
arch/x86/include/asm/kvm_host.h
arch/x86/kvm/lapic.c
arch/x86/kvm/lapic.h
arch/x86/kvm/vmx/nested.c
arch/x86/kvm/vmx/nested.h
arch/x86/kvm/vmx/vmx.c
arch/x86/kvm/vmx/vmx.h
arch/x86/kvm/x86.c

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0c1d54d9ef4574d874feb0a0b82380549bf3257a,34b52b49f5e689a9ac0c3d62656cfd16aa670c8a..83fe0a78146fc198115aba0e76ba57ecfb1dd8d9
@@@ -1954,11 -1928,19 +1954,11 @@@ int __kvm_get_msr(struct kvm_vcpu *vcpu
  static int kvm_get_msr_ignored_check(struct kvm_vcpu *vcpu,
                                     u32 index, u64 *data, bool host_initiated)
  {
 -      int ret = __kvm_get_msr(vcpu, index, data, host_initiated);
 -
 -      if (ret == KVM_MSR_RET_INVALID) {
 -              /* Unconditionally clear *data for simplicity */
 -              *data = 0;
 -              if (kvm_msr_ignored_check(index, 0, false))
 -                      ret = 0;
 -      }
 -
 -      return ret;
 +      return kvm_do_msr_access(vcpu, index, data, host_initiated, MSR_TYPE_R,
 +                               __kvm_get_msr);
  }
  
static int kvm_get_msr_with_filter(struct kvm_vcpu *vcpu, u32 index, u64 *data)
+ int kvm_get_msr_with_filter(struct kvm_vcpu *vcpu, u32 index, u64 *data)
  {
        if (!kvm_msr_allowed(vcpu, index, KVM_MSR_FILTER_READ))
                return KVM_MSR_RET_FILTERED;