Re: [GIT PULL] KVM: x86: Misc changes for 7.3

Paolo Bonzini <[email protected]>
Newsgroups org.kernel.vger.kvm,org.kernel.vger.linux-kernel
Message-ID <CABgObfa-4Dbi0FjKCy6UvjvmcniCwuhrvZfA9uuBH2QE2HdU1g@mail.gmail.com>
On Wed, Aug 12, 2026 at 11:32 PM Sean Christopherson <[email protected]> wrote:
>
> The main set of x86 changes for 7.3.  Yosry's INVVPID and EFER validation changes
> are probably the most interesting.  Almost everything from me falls into the
> category of "fixes for things that are technically bugs, but that no one cares
> about in practice".

Pulled, thanks.

Paolo

> The following changes since commit a204badd8432f93b7e862e7dac6db0fe3d65f370:
>
>   Merge branch 'kvm-chainsaw' into HEAD (2026-06-25 11:32:09 +0200)
>
> are available in the Git repository at:
>
>   https://github.com/kvm-x86/linux.git tags/kvm-x86-misc-7.3
>
> for you to fetch changes up to 66ee8f1556575c8f9ae76932dd3aca65b4b60e59:
>
>   KVM: x86/pmu: Clean up vPMU comments and stray blank lines (2026-08-05 16:42:23 -0700)
>
> ----------------------------------------------------------------
> KVM x86 misc changes for 7.3
>
>  - Fix VPID virtualization bugs where KVM would fail to flush hardware TLBs.
>
>  - Harden the SNP and TDX "populate" ioctls against bad input, and to prepare
>    for supporting in-place private<=>shared conversion.
>
>  - Fix a variety of #DB priority bugs.
>
>  - Fix a class of races related to enabling Hyper-V emulation on a vCPU after
>    the vCPU is visible to the rest of KVM.
>
>  - Use static calls for nested virtualization ops.
>
>  - Move more KVM-internal code out of x86's kvm_host.h.
>
>  - Enumerate support for a variety of Zhaoxin instructions that don't require
>    explicit virtualization.
>
>  - Fix missing EFER validation bugs, including in the KVM_SET_SREGS* path.
>
>  - Harden kvm_vcpu_map() against double-mapping and thus leaking references.
>
>  - Misc fixes and cleanups, e.g. for largely benign syzkaller splats.
>
> ----------------------------------------------------------------
> Binbin Wu (1):
>       KVM: x86: Fix emulated CPUID features being applied to wrong sub-leaf
>
> Carlos López (3):
>       KVM: x86: Treat any non-zero return from set_dr() as a faulting condition
>       KVM: x86: Fix array_index_nospec() protection in kvm_vcpu_ioctl_x86_set_mce()
>       KVM: x86: hyper-v: Clamp stimer deadline to avoid livelock
>
> Ewan Hai-oc (5):
>       KVM: x86: Expose Zhaoxin SM2 CPUID feature
>       KVM: x86: Expose Zhaoxin CCS (SM3 + SM4) CPUID feature
>       KVM: x86: Expose Zhaoxin RNG2 CPUID feature
>       KVM: x86: Expose Zhaoxin PHE2 CPUID feature
>       KVM: x86: Expose Zhaoxin RSA CPUID feature
>
> Hao Zhang (1):
>       KVM: selftests: Extend the invalid nVMX guest state test to cover RSM
>
> Joerg Roedel (1):
>       KVM: SEV: Explicitly disallow NULL user address for SNP_LAUNCH_UPDATE
>
> Kai Huang (1):
>       KVM: x86: Use KVM_X86_OP() for the .pi_update_irte() hook
>
> Like Xu (1):
>       KVM: x86/pmu: Clean up vPMU comments and stray blank lines
>
> Sean Christopherson (45):
>       KVM: nVMX: Decouple INVVPID operand checks from flushing of vpid02
>       KVM: TDX: Return EINVAL, not EOPNOTSUPP, for NULL INIT_MEM_REGION source
>       KVM: x86: Prioritize DR7.GD #DB over #GP due to illegal DR6/7 value
>       KVM: x86: Manually check DR4/5 write values to fix SVM intercept priority
>       KVM: x86: Prioritize #UD on MOV DR over #GP due to non-zero CPL
>       KVM: VMX: Prioritize DR7.GD=1 #DB over CPL>0 #GP on Intel
>       KVM: x86: Use kvm_dr{6,7}_valid() to check DR{4,5,6,7} write values in emulator
>       KVM: x86: WARN if MOV DR emulation hits a "too late" #GP
>       KVM: x86: Read CR4.DE in emulator if and only if accessing DR4 or DR5
>       KVM: x86/hyperv: Get target FIFO in hv_tlb_flush_enqueue(), not caller
>       KVM: x86/hyperv: Check for NULL vCPU Hyper-V object in kvm_hv_get_tlb_flush_fifo()
>       KVM: x86/hyperv: Ensure vCPU's Hyper-V object is initialized on cross-vCPU accesses
>       KVM: x86/xen: Always route non-singleshot-timer vCPU hypercalls to userspace
>       KVM: x86/xen: Consolidate checks on Xen vCPU ID for singleshot timer hypercalls
>       KVM: x86/xen: Punt singleshot timer hcalls to userspace if Xen vCPU ID isn't set
>       KVM: Initialize a vCPU's index to '-1' while it's being created
>       KVM: Move nVMX's lockdep logic for vcpu->mutex to a common helper
>       KVM: x86: Treat a vCPU as unreachable if its index is invalid
>       KVM: x86/hyperv: Assert vCPU's mutex is held in to_hv_vcpu()
>       KVM: x86/hyperv: Use {READ,WRITE}_ONCE for cross-task synic->active accesses
>       KVM: x86: Move the "APIC attention" macros from kvm_host.h => lapic.c
>       KVM: x86/mmu: Annotate tdp_enabled as being read-mostly
>       KVM: x86: Pluralize the macro guard name for msrs.h
>       KVM: x86: Move CR and DR macro definitions from kvm_host.h => regs.h
>       KVM: x86: Move KVM_GUESTDBG_VALID_MASK from kvm_host.h => x86.c
>       KVM: x86: Add static asserts to document connection b/w TSS structs and macros
>       KVM: x86: Move KVM's arbitrary task switch reason enums to x86.h
>       KVM: x86: Move "struct kvm_apic_map" definition from kvm_host.h => lapic.h
>       KVM: x86: Move "struct kvm_vcpu_hv" and all children from kvm_host.h => hyperv.h
>       KVM: x86: Reject nested CAP enablement if nested virtualization is disabled
>       KVM: x86: Add static calls for nested virtualization ops
>       KVM: x86: Move nested_ops out of kvm_x86_ops, to global kvm_nested_ops
>       KVM: x86: Don't WARN if IRQ disappears because it was cleared from the PIC
>       KVM: x86: Don't WARN if IRQ disappears when Xen emulation is enabled.
>       KVM: nVMX: Ensure KVM_REQ_GET_NESTED_STATE_PAGES is cleared on VM-Exit
>       KVM: nSVM: Add CLASS()es for automagically handling local kvm_vcpu_map() usage
>       KVM: nSVM: Use CLASS(kvm_vcpu_map_local) for SMM VMCB mappings
>       KVM: nVMX: Use CLASS(kvm_vcpu_map_local_readonly) for MSR bitmap merging
>       KVM: PPC: Use CLASS(kvm_vcpu_map_local) to patch dcbz
>       KVM: Harden kvm_vcpu_map() against double-mapping and thus leaking references
>       KVM: x86: Extract VMX's unhandleable emulation check to common x86
>       KVM: nVMX: Synthesize SHUTDOWN on RSM if L2 requires emulation
>       KVM: x86: Rework kvm_x86_ops.vcpu_pre_run() into .vcpu_needs_initialization()
>       KVM: selftests: Use port 0x80 in invalid nVMX guest state test
>       KVM: selftests: Refactor invalid nVMX state test to prepare for RSM testcase
>
> Tim Wiederhake (1):
>       KVM: x86: Replace delivery mode TODO with WARN_ON_ONCE
>
> Yosry Ahmed (9):
>       KVM: nVMX: Always flush vpid02 on first use
>       KVM: nVM: Ensure INVVPID is emulated on the correct physical CPU
>       KVM: x86: Move enabling EFER.SVME and EFER.LMSLE to generic EFER setup
>       KVM: x86: Disallow EFER.LME and EFER.LMA if long mode is not supported
>       KVM: x86: Always initialize EFER reserved bits on vendor initialization
>       KVM: x86: Reverse the polarity of efer_reserved_bits
>       KVM: x86: Move supported EFER bits to kvm_caps
>       KVM: x86: Check EFER validity on KVM_SET_SREGS*
>       KVM: selftests: Extend set_sregs test to cover EFER
>
> leixiang (1):
>       KVM: Remove kvm_debugfs_dir on kvm_init() error paths
>
>  arch/powerpc/kvm/book3s_pr.c                       |  11 +-
>  arch/x86/include/asm/cpufeatures.h                 |  10 +
>  arch/x86/include/asm/kvm-x86-nested-ops.h          |  36 ++++
>  arch/x86/include/asm/kvm-x86-ops.h                 |   5 +-
>  arch/x86/include/asm/kvm_host.h                    | 212 ++-------------------
>  arch/x86/kvm/cpuid.c                               |  22 ++-
>  arch/x86/kvm/emulate.c                             |  49 +++--
>  arch/x86/kvm/hyperv.c                              |  95 +++++----
>  arch/x86/kvm/hyperv.h                              | 117 +++++++++++-
>  arch/x86/kvm/irq.h                                 |  20 ++
>  arch/x86/kvm/lapic.c                               |  13 +-
>  arch/x86/kvm/lapic.h                               |  33 ++++
>  arch/x86/kvm/mmu.h                                 |  11 +-
>  arch/x86/kvm/mmu/mmu.c                             |   2 +-
>  arch/x86/kvm/mmu/paging_tmpl.h                     |   2 +-
>  arch/x86/kvm/msrs.c                                |  21 +-
>  arch/x86/kvm/msrs.h                                |   5 +-
>  arch/x86/kvm/pmu.c                                 |  12 +-
>  arch/x86/kvm/pmu.h                                 |   4 +-
>  arch/x86/kvm/regs.c                                |   3 +-
>  arch/x86/kvm/regs.h                                |  38 ++++
>  arch/x86/kvm/smm.c                                 |   4 +
>  arch/x86/kvm/svm/nested.c                          |  20 +-
>  arch/x86/kvm/svm/sev.c                             |  16 +-
>  arch/x86/kvm/svm/svm.c                             |  66 ++-----
>  arch/x86/kvm/svm/svm.h                             |   1 +
>  arch/x86/kvm/tss.h                                 |   7 +
>  arch/x86/kvm/vmx/main.c                            |  24 ++-
>  arch/x86/kvm/vmx/nested.c                          |  81 ++++----
>  arch/x86/kvm/vmx/nested.h                          |   6 +-
>  arch/x86/kvm/vmx/pmu_intel.c                       |   1 -
>  arch/x86/kvm/vmx/tdx.c                             |  16 +-
>  arch/x86/kvm/vmx/vmx.c                             |  19 +-
>  arch/x86/kvm/vmx/x86_ops.h                         |   4 +-
>  arch/x86/kvm/x86.c                                 | 110 ++++++++---
>  arch/x86/kvm/x86.h                                 |   8 +-
>  arch/x86/kvm/xen.c                                 |  43 +++--
>  include/linux/kvm_host.h                           |  26 +++
>  .../testing/selftests/kvm/include/x86/processor.h  |   2 +
>  .../testing/selftests/kvm/x86/pmu_counters_test.c  |   6 +-
>  .../selftests/kvm/x86/pmu_event_filter_test.c      |   4 +-
>  tools/testing/selftests/kvm/x86/set_sregs_test.c   |  81 ++++++--
>  .../kvm/x86/vmx_invalid_nested_guest_state.c       | 118 ++++++++++--
>  virt/kvm/kvm_main.c                                |  12 ++
>  44 files changed, 857 insertions(+), 539 deletions(-)
>  create mode 100644 arch/x86/include/asm/kvm-x86-nested-ops.h
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.