lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230224081105.2106665-1-pbonzini@redhat.com>
Date:   Fri, 24 Feb 2023 03:11:05 -0500
From:   Paolo Bonzini <pbonzini@...hat.com>
To:     torvalds@...ux-foundation.org
Cc:     linux-kernel@...r.kernel.org, kvm@...r.kernel.org
Subject: [GIT PULL] KVM changes for Linux 6.3 merge window

Linus,

The following changes since commit 9442d05bba6c12749fdc4039eddcf801398ec82b:

  arm64/sme: Fix __finalise_el2 SMEver check (2023-02-06 16:34:29 +0000)

are available in the Git repository at:

  https://git.kernel.org/pub/scm/virt/kvm/kvm.git tags/for-linus

for you to fetch changes up to 45dd9bc75d9adc9483f0c7d662ba6e73ed698a0b:

  KVM: SVM: hyper-v: placate modpost section mismatch error (2023-02-22 13:32:07 -0500)

The common topic branches with other trees have all been merged already,
hence the slightly weird "since commit" line that git chose above.

There are small conflicts in arch/x86's cpuid lists.  I include the
conflict resolution after the diffstat.

Also, the following drivers/ changes stand out in the diffstat:

- virtualization-related features for the vGIC of Apple's interrupt
  controller and for the RISC-V PMU (event->attr.exclude_{hv,guest})

- a s390 virtio-ccw change that technically should have been included
  in Michael Tsirkin's virtio tree, or simply through the s390 tree.
  But the author (Alexander Gordeev) _is_ an s390 maintainer so please
  give him a pass. :)

----------------------------------------------------------------
ARM:

- Provide a virtual cache topology to the guest to avoid
  inconsistencies with migration on heterogenous systems. Non secure
  software has no practical need to traverse the caches by set/way in
  the first place.

- Add support for taking stage-2 access faults in parallel. This was an
  accidental omission in the original parallel faults implementation,
  but should provide a marginal improvement to machines w/o FEAT_HAFDBS
  (such as hardware from the fruit company).

- A preamble to adding support for nested virtualization to KVM,
  including vEL2 register state, rudimentary nested exception handling
  and masking unsupported features for nested guests.

- Fixes to the PSCI relay that avoid an unexpected host SVE trap when
  resuming a CPU when running pKVM.

- VGIC maintenance interrupt support for the AIC

- Improvements to the arch timer emulation, primarily aimed at reducing
  the trap overhead of running nested.

- Add CONFIG_USERFAULTFD to the KVM selftests config fragment in the
  interest of CI systems.

- Avoid VM-wide stop-the-world operations when a vCPU accesses its own
  redistributor.

- Serialize when toggling CPACR_EL1.SMEN to avoid unexpected exceptions
  in the host.

- Aesthetic and comment/kerneldoc fixes

- Drop the vestiges of the old Columbia mailing list and add [Oliver]
  as co-maintainer

This also drags in arm64's 'for-next/sme2' branch, because both it and
the PSCI relay changes touch the EL2 initialization code.

RISC-V:

- Fix wrong usage of PGDIR_SIZE instead of PUD_SIZE

- Correctly place the guest in S-mode after redirecting a trap to the guest

- Redirect illegal instruction traps to guest

- SBI PMU support for guest

s390:

- Two patches sorting out confusion between virtual and physical
  addresses, which currently are the same on s390.

- A new ioctl that performs cmpxchg on guest memory

- A few fixes

x86:

- Change tdp_mmu to a read-only parameter

- Separate TDP and shadow MMU page fault paths

- Enable Hyper-V invariant TSC control

- Fix a variety of APICv and AVIC bugs, some of them real-world,
  some of them affecting architecurally legal but unlikely to
  happen in practice

- Mark APIC timer as expired if its in one-shot mode and the count
  underflows while the vCPU task was being migrated

- Advertise support for Intel's new fast REP string features

- Fix a double-shootdown issue in the emergency reboot code

- Ensure GIF=1 and disable SVM during an emergency reboot, i.e. give SVM
  similar treatment to VMX

- Update Xen's TSC info CPUID sub-leaves as appropriate

- Add support for Hyper-V's extended hypercalls, where "support" at this
  point is just forwarding the hypercalls to userspace

- Clean up the kvm->lock vs. kvm->srcu sequences when updating the PMU and
  MSR filters

- One-off fixes and cleanups

- Fix and cleanup the range-based TLB flushing code, used when KVM is
  running on Hyper-V

- Add support for filtering PMU events using a mask.  If userspace
  wants to restrict heavily what events the guest can use, it can now
  do so without needing an absurd number of filter entries

- Clean up KVM's handling of "PMU MSRs to save", especially when vPMU
  support is disabled

- Add PEBS support for Intel Sapphire Rapids

- Fix a mostly benign overflow bug in SEV's send|receive_update_data()

- Move several SVM-specific flags into vcpu_svm

x86 Intel:

- Handle NMI VM-Exits before leaving the noinstr region

- A few trivial cleanups in the VM-Enter flows

- Stop enabling VMFUNC for L1 purely to document that KVM doesn't support
  EPTP switching (or any other VM function) for L1

- Fix a crash when using eVMCS's enlighted MSR bitmaps

Generic:

- Clean up the hardware enable and initialization flow, which was
  scattered around multiple arch-specific hooks.  Instead, just
  let the arch code call into generic code.  Both x86 and ARM should
  benefit from not having to fight common KVM code's notion of how
  to do initialization.

- Account allocations in generic kvm_arch_alloc_vm()

- Fix a memory leak if coalesced MMIO unregistration fails

selftests:

- On x86, cache the CPU vendor (AMD vs. Intel) and use the info to emit
  the correct hypercall instruction instead of relying on KVM to patch
  in VMMCALL

- Use TAP interface for kvm_binary_stats_test and tsc_msrs_test

----------------------------------------------------------------
Aaron Lewis (8):
      KVM: x86/pmu: Correct the mask used in a pmu event filter lookup
      KVM: x86/pmu: Remove impossible events from the pmu event filter
      KVM: x86/pmu: prepare the pmu event filter for masked events
      KVM: x86/pmu: Introduce masked events to the pmu event filter
      KVM: selftests: Add flags when creating a pmu event filter
      KVM: selftests: Add testing for KVM_SET_PMU_EVENT_FILTER
      KVM: selftests: Test masked events in PMU filter
      KVM: selftests: Fix a typo in the vcpu_msrs_set assert

Akihiko Odaki (6):
      arm64/sysreg: Convert CCSIDR_EL1 to automatic generation
      arm64/sysreg: Add CCSIDR2_EL1
      arm64/cache: Move CLIDR macro definitions
      KVM: arm64: Always set HCR_TID2
      KVM: arm64: Mask FEAT_CCIDX
      KVM: arm64: Normalize cache configuration

Alexander Gordeev (1):
      s390/virtio: sort out physical vs virtual pointers usage

Alexandre Ghiti (1):
      KVM: RISC-V: Fix wrong usage of PGDIR_SIZE to check page sizes

Alexandru Matei (1):
      KVM: VMX: Fix crash due to uninitialized current_vmcs

Alexey Dobriyan (2):
      KVM: account allocation in generic version of kvm_arch_alloc_vm()
      KVM: VMX: don't use "unsigned long" in vmx_vcpu_enter_exit()

Andy Chiu (1):
      RISC-V: KVM: Redirect illegal instruction traps to guest

Anish Ghulati (1):
      KVM: SVM: Account scratch allocations used to decrypt SEV guest memory

Anup Patel (1):
      RISC-V: KVM: Fix privilege mode setting in kvm_riscv_vcpu_trap_redirect()

Atish Patra (14):
      perf: RISC-V: Define helper functions expose hpm counter width and count
      perf: RISC-V: Improve privilege mode filtering for perf
      RISC-V: Improve SBI PMU extension related definitions
      RISC-V: KVM: Define a probe function for SBI extension data structures
      RISC-V: KVM: Return correct code for hsm stop function
      RISC-V: KVM: Modify SBI extension handler to return SBI error code
      RISC-V: KVM: Add skeleton support for perf
      RISC-V: KVM: Add SBI PMU extension support
      RISC-V: KVM: Make PMU functionality depend on Sscofpmf
      RISC-V: KVM: Disable all hpmcounter access for VS/VU mode
      RISC-V: KVM: Implement trap & emulate for hpmcounters
      RISC-V: KVM: Implement perf support without sampling
      RISC-V: KVM: Support firmware events
      RISC-V: KVM: Increment firmware pmu events

Chao Gao (3):
      KVM: x86: Do compatibility checks when onlining CPU
      KVM: Rename and move CPUHP_AP_KVM_STARTING to ONLINE section
      KVM: Disable CPU hotplug during hardware enabling/disabling

Christoffer Dall (6):
      KVM: arm64: nv: Introduce nested virtualization VCPU feature
      KVM: arm64: nv: Reset VCPU to EL2 registers if VCPU nested virt is set
      KVM: arm64: nv: Allow userspace to set PSR_MODE_EL2x
      KVM: arm64: nv: Add nested virt VCPU primitives for vEL2 VCPU state
      KVM: arm64: nv: Handle trapped ERET from virtual EL2
      KVM: arm64: nv: Only toggle cache for virtual EL2 when SCTLR_EL2 changes

Christophe JAILLET (2):
      KVM: arm64: vgic-v3: Use kstrtobool() instead of strtobool()
      KVM: x86/mmu: Use kstrtobool() instead of strtobool()

David Matlack (22):
      KVM: x86/mmu: Change tdp_mmu to a read-only parameter
      KVM: x86/mmu: Move TDP MMU VM init/uninit behind tdp_mmu_enabled
      KVM: x86/mmu: Grab mmu_invalidate_seq in kvm_faultin_pfn()
      KVM: x86/mmu: Handle error PFNs in kvm_faultin_pfn()
      KVM: x86/mmu: Avoid memslot lookup during KVM_PFN_ERR_HWPOISON handling
      KVM: x86/mmu: Handle no-slot faults in kvm_faultin_pfn()
      KVM: x86/mmu: Initialize fault.{gfn,slot} earlier for direct MMUs
      KVM: x86/mmu: Split out TDP MMU page fault handling
      KVM: x86/mmu: Stop needlessly making MMU pages available for TDP MMU faults
      KVM: x86/mmu: Rename __direct_map() to direct_map()
      KVM: x86/mmu: Change tdp_mmu to a read-only parameter
      KVM: x86/mmu: Move TDP MMU VM init/uninit behind tdp_mmu_enabled
      KVM: x86/mmu: Grab mmu_invalidate_seq in kvm_faultin_pfn()
      KVM: x86/mmu: Handle error PFNs in kvm_faultin_pfn()
      KVM: x86/mmu: Avoid memslot lookup during KVM_PFN_ERR_HWPOISON handling
      KVM: x86/mmu: Handle no-slot faults in kvm_faultin_pfn()
      KVM: x86/mmu: Initialize fault.{gfn,slot} earlier for direct MMUs
      KVM: x86/mmu: Split out TDP MMU page fault handling
      KVM: x86/mmu: Stop needlessly making MMU pages available for TDP MMU faults
      KVM: x86/mmu: Rename __direct_map() to direct_map()
      KVM: x86: Replace cpu_dirty_logging_count with nr_memslots_dirty_logging
      KVM: x86/mmu: Make tdp_mmu_allowed static

Emanuele Giuseppe Esposito (2):
      KVM: x86: Reinitialize xAPIC ID when userspace forces x2APIC => xAPIC
      KVM: selftests: Verify APIC_ID is set when forcing x2APIC=>xAPIC transition

Gavin Shan (2):
      KVM: selftests: Remove duplicate VM creation in memslot_perf_test
      KVM: selftests: Assign guest page size in sync area early in memslot_perf_test

Greg Edwards (1):
      KVM: x86: Allow APICv APIC ID inhibit to be cleared

Hou Wenlong (6):
      KVM: x86/mmu: Move round_gfn_for_level() helper into mmu_internal.h
      KVM: x86/mmu: Fix wrong gfn range of tlb flushing in kvm_set_pte_rmapp()
      KVM: x86/mmu: Reduce gfn range of tlb flushing in tdp_mmu_map_handle_target_level()
      KVM: x86/mmu: Fix wrong start gfn of tlb flushing with range
      KVM: x86/mmu: Fix wrong gfn range of tlb flushing in validate_direct_spte()
      KVM: x86/mmu: Cleanup range-based flushing for given page

Isaku Yamahata (3):
      KVM: Drop kvm_count_lock and instead protect kvm_usage_count with kvm_lock
      KVM: Remove on_each_cpu(hardware_disable_nolock) in kvm_exit()
      KVM: Make hardware_enable_failed a local variable in the "enable all" path

Janis Schoetterl-Glausch (14):
      KVM: s390: selftest: memop: Pass mop_desc via pointer
      KVM: s390: selftest: memop: Replace macros by functions
      KVM: s390: selftest: memop: Move testlist into main
      KVM: s390: selftest: memop: Add bad address test
      KVM: s390: selftest: memop: Fix typo
      KVM: s390: selftest: memop: Fix wrong address being used in test
      KVM: s390: selftest: memop: Fix integer literal
      KVM: s390: Move common code of mem_op functions into function
      KVM: s390: Dispatch to implementing function at top level of vm mem_op
      KVM: s390: Refactor absolute vm mem_op function
      KVM: s390: Refactor vcpu mem_op function
      KVM: s390: Extend MEM_OP ioctl by storage key checked cmpxchg
      Documentation: KVM: s390: Describe KVM_S390_MEMOP_F_CMPXCHG
      KVM: s390: selftest: memop: Add cmpxchg tests

Janosch Frank (1):
      Merge remote-tracking branch 'l390-korg/cmpxchg_user_key' into kvm-next

Jiapeng Chong (1):
      arm64/sysreg: clean up some inconsistent indenting

Jim Mattson (2):
      x86/cpufeatures: Add macros for Intel's new fast rep string features
      KVM: x86: Advertise fast REP string features inherent to the CPU

Jing Zhang (1):
      KVM: selftests: Stop assuming stats are contiguous in kvm_binary_stats_test

Jintack Lim (7):
      arm64: Add ARM64_HAS_NESTED_VIRT cpufeature
      KVM: arm64: nv: Handle HCR_EL2.NV system register traps
      KVM: arm64: nv: Support virtual EL2 exceptions
      KVM: arm64: nv: Inject HVC exceptions to the virtual EL2
      KVM: arm64: nv: Handle SMCs taken from virtual EL2
      KVM: arm64: nv: Add accessors for SPSR_EL1, ELR_EL1 and VBAR_EL1 from virtual EL2
      KVM: arm64: nv: Emulate EL12 register accesses from the virtual EL2

Kees Cook (1):
      KVM: x86: Replace 0-length arrays with flexible arrays

Lai Jiangshan (4):
      kvm: x86/mmu: Warn on linking when sp->unsync_children
      kvm: x86/mmu: Warn on linking when sp->unsync_children
      kvm: x86/mmu: Rename SPTE_TDP_AD_ENABLED_MASK to SPTE_TDP_AD_ENABLED
      kvm: x86/mmu: Don't clear write flooding for direct SP

Li RongQing (1):
      KVM: x86: fire timer when it is migrated and expired, and in oneshot mode

Like Xu (5):
      KVM: svm/avic: Drop "struct kvm_x86_ops" for avic_hardware_setup()
      KVM: x86/pmu: Drop event_type and rename "struct kvm_event_hw_type_mapping"
      KVM: x86/pmu: Don't tell userspace to save MSRs for non-existent fixed PMCs
      KVM: x86/pmu: Add PRIR++ and PDist support for SPR and later models
      perf/x86/intel: Expose EPT-friendly PEBS for SPR and future models

Marc Zyngier (18):
      KVM: arm64: Simplify the CPUHP logic
      arm64: Allow the definition of UNKNOWN system register fields
      KVM: arm64: Kill CPACR_EL1_TTA definition
      KVM: arm64: vgic: Allow registration of a non-maskable maintenance interrupt
      irqchip/apple-aic: Register vgic maintenance interrupt with KVM
      KVM: arm64: vgic-v3: Limit IPI-ing when accessing GICR_{C,S}ACTIVER0
      KVM: arm64: Drop Columbia-hosted mailing list
      KVM: arm64: Don't arm a hrtimer for an already pending timer
      KVM: arm64: Reduce overhead of trapped timer sysreg accesses
      KVM: arm64: timers: Don't BUG() on unhandled timer trap
      irqchip/apple-aic: Correctly map the vgic maintenance interrupt
      KVM: arm64: Fix non-kerneldoc comments
      KVM: arm64: Use the S2 MMU context to iterate over S2 table
      KVM: arm64: nv: Add EL2 system registers to vcpu context
      KVM: arm64: nv: Emulate PSTATE.M for a guest hypervisor
      KVM: arm64: nv: Allow a sysreg to be hidden from userspace only
      KVM: arm64: nv: Filter out unsupported features from ID regs
      Merge tag ' https://github.com/oupton/linux tags/kvmarm-6.3' from into kvmarm-master/next

Mark Brown (1):
      KVM: selftests: Enable USERFAULTFD

Maxim Levitsky (4):
      KVM: nSVM: Don't sync tlb_ctl back to vmcb12 on nested VM-Exit
      KVM: x86: Move HF_GIF_MASK into "struct vcpu_svm" as "guest_gif"
      KVM: x86: Move HF_NMI_MASK and HF_IRET_MASK into "struct vcpu_svm"
      KVM: x86: Use emulator callbacks instead of duplicating "host flags"

Michal Luczaj (9):
      KVM: x86/emulator: Fix segment load privilege level validation
      KVM: x86/emulator: Fix comment in __load_segment_descriptor()
      KVM: x86: Optimize kvm->lock and SRCU interaction (KVM_SET_PMU_EVENT_FILTER)
      KVM: x86: Optimize kvm->lock and SRCU interaction (KVM_X86_SET_MSR_FILTER)
      KVM: x86: Simplify msr_filter update
      KVM: x86: Explicitly state lockdep condition of msr_filter update
      KVM: x86: Remove unnecessary initialization in kvm_vm_ioctl_set_msr_filter()
      KVM: x86: Simplify msr_io()
      KVM: selftests: Clean up misnomers in xen_shinfo_test

Nianyao Tang (1):
      KVM: arm64: Synchronize SMEN on vcpu schedule out

Nico Boehr (2):
      KVM: s390: disable migration mode when dirty tracking is disabled
      KVM: s390: GISA: sort out physical vs virtual pointers usage

Nina Schoetterl-Glausch (1):
      KVM: selftests: Compile s390 tests with -march=z10

Oliver Upton (19):
      KVM: arm64: Use KVM's pte type/helpers in handle_access_fault()
      KVM: arm64: Ignore EAGAIN for walks outside of a fault
      KVM: arm64: Return EAGAIN for invalid PTE in attr walker
      KVM: arm64: Don't serialize if the access flag isn't set
      KVM: arm64: Handle access faults behind the read lock
      KVM: arm64: Condition HW AF updates on config option
      MAINTAINERS: Add Oliver Upton as co-maintainer of KVM/arm64
      KVM: arm64: Mark some VM-scoped allocations as __GFP_ACCOUNT
      KVM: arm64: nv: Use reg_to_encoding() to get sysreg ID
      Merge branch kvm/kvm-hw-enable-refactor into kvmarm/next
      Merge branch arm64/for-next/sme2 into kvmarm/next
      Merge branch kvm-arm64/virtual-cache-geometry into kvmarm/next
      Merge branch kvm-arm64/parallel-access-faults into kvmarm/next
      Merge branch kvm-arm64/MAINTAINERS into kvmarm/next
      Merge branch kvm-arm64/nv-timer-improvements into kvmarm/next
      Merge branch kvm-arm64/psci-relay-fixes into kvmarm/next
      Merge branch kvm-arm64/apple-vgic-mi into kvmarm/next
      Merge branch kvm-arm64/misc into kvmarm/next
      Merge branch kvm-arm64/nv-prefix into kvmarm/next

Paolo Bonzini (15):
      Merge branch 'kvm-late-6.1' into HEAD
      Merge branch 'kvm-hw-enable-refactor' into HEAD
      Merge branch 'kvm-v6.2-rc4-fixes' into HEAD
      Merge branch 'kvm-lapic-fix-and-cleanup' into HEAD
      Merge tag 'kvm-x86-generic-6.3' of https://github.com/kvm-x86/linux into HEAD
      Merge tag 'kvm-x86-misc-6.3' of https://github.com/kvm-x86/linux into HEAD
      Merge tag 'kvm-x86-mmu-6.3' of https://github.com/kvm-x86/linux into HEAD
      Merge tag 'kvm-x86-pmu-6.3' of https://github.com/kvm-x86/linux into HEAD
      Merge tag 'kvm-x86-selftests-6.3' of https://github.com/kvm-x86/linux into HEAD
      Merge tag 'kvm-x86-svm-6.3' of https://github.com/kvm-x86/linux into HEAD
      Merge tag 'kvm-x86-vmx-6.3' of https://github.com/kvm-x86/linux into HEAD
      Merge tag 'kvm-riscv-6.3-1' of https://github.com/kvm-riscv/linux into HEAD
      Merge tag 'kvm-s390-next-6.3-1' of https://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD
      Merge tag 'kvmarm-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
      Merge tag 'kvm-x86-apic-6.3' of https://github.com/kvm-x86/linux into HEAD

Paul Durrant (2):
      KVM: x86/cpuid: generalize kvm_update_kvm_cpuid_base() and also capture limit
      KVM: x86/xen: update Xen CPUID Leaf 4 (tsc info) sub-leaves, if present

Peter Gonda (1):
      KVM: SVM: Fix potential overflow in SEV's send|receive_update_data()

Quentin Perret (4):
      KVM: arm64: Provide sanitized SYS_ID_AA64SMFR0_EL1 to nVHE
      KVM: arm64: Introduce finalise_el2_state macro
      KVM: arm64: Use sanitized values in __check_override in nVHE
      KVM: arm64: Finalise EL2 state from pKVM PSCI relay

Randy Dunlap (1):
      KVM: SVM: hyper-v: placate modpost section mismatch error

Reiji Watanabe (1):
      KVM: selftests: kvm_vm_elf_load() and elfhdr_get() should close fd

Sean Christopherson (105):
      KVM: x86/mmu: Replace open coded usage of tdp_mmu_page with is_tdp_mmu_page()
      KVM: x86/mmu: Pivot on "TDP MMU enabled" to check if active MMU is TDP MMU
      KVM: x86/mmu: Pivot on "TDP MMU enabled" when handling direct page faults
      KVM: x86/mmu: Replace open coded usage of tdp_mmu_page with is_tdp_mmu_page()
      KVM: x86/mmu: Pivot on "TDP MMU enabled" to check if active MMU is TDP MMU
      KVM: x86/mmu: Pivot on "TDP MMU enabled" when handling direct page faults
      KVM: Register /dev/kvm as the _very_ last thing during initialization
      KVM: Initialize IRQ FD after arch hardware setup
      KVM: Allocate cpus_hardware_enabled after arch hardware setup
      KVM: Teardown VFIO ops earlier in kvm_exit()
      KVM: s390: Unwind kvm_arch_init() piece-by-piece() if a step fails
      KVM: s390: Move hardware setup/unsetup to init/exit
      KVM: x86: Do timer initialization after XCR0 configuration
      KVM: x86: Move hardware setup/unsetup to init/exit
      KVM: Drop arch hardware (un)setup hooks
      KVM: VMX: Reset eVMCS controls in VP assist page during hardware disabling
      KVM: VMX: Don't bother disabling eVMCS static key on module exit
      KVM: VMX: Move Hyper-V eVMCS initialization to helper
      KVM: x86: Move guts of kvm_arch_init() to standalone helper
      KVM: VMX: Do _all_ initialization before exposing /dev/kvm to userspace
      KVM: x86: Serialize vendor module initialization (hardware setup)
      KVM: arm64: Free hypervisor allocations if vector slot init fails
      KVM: arm64: Unregister perf callbacks if hypervisor finalization fails
      KVM: arm64: Do arm/arch initialization without bouncing through kvm_init()
      KVM: arm64: Mark kvm_arm_init() and its unique descendants as __init
      KVM: MIPS: Hardcode callbacks to hardware virtualization extensions
      KVM: MIPS: Setup VZ emulation? directly from kvm_mips_init()
      KVM: MIPS: Register die notifier prior to kvm_init()
      KVM: RISC-V: Do arch init directly in riscv_kvm_init()
      KVM: RISC-V: Tag init functions and data with __init, __ro_after_init
      KVM: PPC: Move processor compatibility check to module init
      KVM: s390: Do s390 specific init without bouncing through kvm_init()
      KVM: s390: Mark __kvm_s390_init() and its descendants as __init
      KVM: Drop kvm_arch_{init,exit}() hooks
      KVM: VMX: Make VMCS configuration/capabilities structs read-only after init
      KVM: x86: Do CPU compatibility checks in x86 code
      KVM: Drop kvm_arch_check_processor_compat() hook
      KVM: x86: Use KBUILD_MODNAME to specify vendor module name
      KVM: x86: Unify pr_fmt to use module name for all KVM modules
      KVM: VMX: Use current CPU's info to perform "disabled by BIOS?" checks
      KVM: x86: Do VMX/SVM support checks directly in vendor code
      KVM: VMX: Shuffle support checks and hardware enabling code around
      KVM: SVM: Check for SVM support in CPU compatibility checks
      KVM: x86: Move CPU compat checks hook to kvm_x86_ops (from kvm_x86_init_ops)
      KVM: Ensure CPU is stable during low level hardware enable/disable
      KVM: Use a per-CPU variable to track which CPUs have enabled virtualization
      KVM: Register syscore (suspend/resume) ops early in kvm_init()
      KVM: Opt out of generic hardware enabling on s390 and PPC
      KVM: Clean up error labels in kvm_init()
      KVM: x86: Blindly get current x2APIC reg value on "nodecode write" traps
      KVM: x86: Purge "highest ISR" cache when updating APICv state
      KVM: SVM: Flush the "current" TLB when activating AVIC
      KVM: SVM: Process ICR on AVIC IPI delivery failure due to invalid target
      KVM: x86: Don't inhibit APICv/AVIC on xAPIC ID "change" if APIC is disabled
      KVM: x86: Don't inhibit APICv/AVIC if xAPIC ID mismatch is due to 32-bit ID
      KVM: SVM: Don't put/load AVIC when setting virtual APIC mode
      KVM: x86: Handle APICv updates for APIC "mode" changes via request
      KVM: x86: Move APIC access page helper to common x86 code
      KVM: x86: Inhibit APIC memslot if x2APIC and AVIC are enabled
      KVM: SVM: Replace "avic_mode" enum with "x2avic_enabled" boolean
      KVM: SVM: Compute dest based on sender's x2APIC status for AVIC kick
      Revert "KVM: SVM: Use target APIC ID to complete x2AVIC IRQs when possible"
      KVM: SVM: Document that vCPU ID == APIC ID in AVIC kick fastpatch
      KVM: SVM: Add helper to perform final AVIC "kick" of single vCPU
      KVM: x86: Explicitly skip optimized logical map setup if vCPU's LDR==0
      KVM: x86: Explicitly track all possibilities for APIC map's logical modes
      KVM: x86: Skip redundant x2APIC logical mode optimized cluster setup
      KVM: x86: Disable APIC logical map if logical ID covers multiple MDAs
      KVM: x86: Disable APIC logical map if vCPUs are aliased in logical mode
      KVM: x86: Honor architectural behavior for aliased 8-bit APIC IDs
      KVM: x86: Inhibit APICv/AVIC if the optimized physical map is disabled
      KVM: SVM: Inhibit AVIC if vCPUs are aliased in logical mode
      KVM: SVM: Always update local APIC on writes to logical dest register
      KVM: SVM: Update svm->ldr_reg cache even if LDR is "bad"
      KVM: SVM: Require logical ID to be power-of-2 for AVIC entry
      KVM: SVM: Handle multiple logical targets in AVIC kick fastpath
      KVM: SVM: Ignore writes to Remote Read Data on AVIC write traps
      Revert "KVM: SVM: Do not throw warning when calling avic_vcpu_load on a running vcpu"
      KVM: x86: Track required APICv inhibits with variable, not callback
      KVM: x86: Add helpers to recalc physical vs. logical optimized APIC maps
      KVM: PPC: Fix refactoring goof in kvmppc_e500mc_init()
      KVM: x86: Inject #GP if WRMSR sets reserved bits in APIC Self-IPI
      KVM: x86: Inject #GP on x2APIC WRMSR that sets reserved bits 63:32
      KVM: x86: Mark x2APIC DFR reg as non-existent for x2APIC
      KVM: x86: Split out logic to generate "readable" APIC regs mask to helper
      KVM: VMX: Always intercept accesses to unsupported "extended" x2APIC regs
      KVM: VMX: Intercept reads to invalid and write-only x2APIC registers
      x86/crash: Disable virt in core NMI crash handler to avoid double shootdown
      x86/virt: Force GIF=1 prior to disabling SVM (for reboot flows)
      x86/reboot: Disable virtualization in an emergency if SVM is supported
      x86/reboot: Disable SVM, not just VMX, when stopping CPUs
      KVM: VMX: Access @flags as a 32-bit value in __vmx_vcpu_run()
      KVM: x86: Make vmx_get_exit_qual() and vmx_get_intr_info() noinstr-friendly
      KVM: VMX: Allow VM-Fail path of VMREAD helper to be instrumented
      KVM: VMX: Always inline eVMCS read/write helpers
      KVM: VMX: Always inline to_vmx() and to_kvm_vmx()
      x86/entry: KVM: Use dedicated VMX NMI entry for 32-bit kernels too
      KVM: VMX: Provide separate subroutines for invoking NMI vs. IRQ handlers
      KVM: VMX: Handle NMI VM-Exits in noinstr region
      KVM: x86/pmu: Cap kvm_pmu_cap.num_counters_gp at KVM's internal max
      KVM: x86/pmu: Gate all "unimplemented MSR" prints on report_ignored_msrs
      KVM: x86/pmu: Use separate array for defining "PMU MSRs to save"
      KVM: x86/pmu: Don't tell userspace to save PMU MSRs if PMU is disabled
      KVM: x86/pmu: Provide "error" semantics for unsupported-but-known PMU MSRs
      KVM: Destroy target device if coalesced MMIO unregistration fails

Shaoqin Huang (3):
      KVM: selftests: Remove redundant setbuf()
      selftests: KVM: Replace optarg with arg in guest_modes_cmdline
      KVM: selftests: Remove duplicate macro definition

Suravee Suthikulpanit (1):
      KVM: SVM: Fix x2APIC Logical ID calculation for avic_kick_target_vcpus_fast

Thomas Huth (4):
      KVM: selftests: Use TAP interface in the kvm_binary_stats_test
      KVM: selftests: x86: Use TAP interface in the tsc_msrs_test
      KVM: selftests: Use TAP interface in the kvm_binary_stats_test
      KVM: selftests: x86: Use TAP interface in the tsc_msrs_test

Vipin Sharma (5):
      KVM: x86: hyper-v: Use common code for hypercall userspace exit
      KVM: x86: hyper-v: Add extended hypercall support in Hyper-v
      KVM: selftests: Test Hyper-V extended hypercall enablement
      KVM: selftests: Replace hardcoded Linux OS id with HYPERV_LINUX_OS_ID
      KVM: selftests: Test Hyper-V extended hypercall exit to userspace

Vishal Annapurve (3):
      KVM: selftests: x86: Use "this_cpu" prefix for cpu vendor queries
      KVM: selftests: x86: Cache host CPU vendor (AMD vs. Intel)
      KVM: selftests: x86: Use host's native hypercall instruction in kvm_hypercall()

Vitaly Kuznetsov (22):
      KVM: nVMX: Sanitize primary processor-based VM-execution controls with eVMCS too
      KVM: nVMX: Invert 'unsupported by eVMCSv1' check
      KVM: nVMX: Prepare to sanitize tertiary execution controls with eVMCS
      KVM: VMX: Resurrect vmcs_conf sanitization for KVM-on-Hyper-V
      x86/hyperv: Add HV_EXPOSE_INVARIANT_TSC define
      KVM: x86: Add a KVM-only leaf for CPUID_8000_0007_EDX
      KVM: x86: Hyper-V invariant TSC control
      KVM: selftests: Rename 'msr->available' to 'msr->fault_exepected' in hyperv_features test
      KVM: selftests: Convert hyperv_features test to using KVM_X86_CPU_FEATURE()
      KVM: selftests: Test that values written to Hyper-V MSRs are preserved
      KVM: selftests: Test Hyper-V invariant TSC control
      KVM: nVMX: Sanitize primary processor-based VM-execution controls with eVMCS too
      KVM: nVMX: Invert 'unsupported by eVMCSv1' check
      KVM: nVMX: Prepare to sanitize tertiary execution controls with eVMCS
      KVM: VMX: Resurrect vmcs_conf sanitization for KVM-on-Hyper-V
      x86/hyperv: Add HV_EXPOSE_INVARIANT_TSC define
      KVM: x86: Add a KVM-only leaf for CPUID_8000_0007_EDX
      KVM: x86: Hyper-V invariant TSC control
      KVM: selftests: Rename 'msr->available' to 'msr->fault_exepected' in hyperv_features test
      KVM: selftests: Convert hyperv_features test to using KVM_X86_CPU_FEATURE()
      KVM: selftests: Test that values written to Hyper-V MSRs are preserved
      KVM: selftests: Test Hyper-V invariant TSC control

Wang Liang (1):
      kvm_host.h: fix spelling typo in function declaration

Wang Yong (1):
      KVM: update code comment in struct kvm_vcpu

Wei Liu (1):
      KVM: x86/mmu: fix an incorrect comment in kvm_mmu_new_pgd()

Yu Zhang (3):
      KVM: MMU: Make the definition of 'INVALID_GPA' common
      KVM: VMX: Do not trap VMFUNC instructions for L1 guests.
      KVM: nVMX: Simplify the setting of SECONDARY_EXEC_ENABLE_VMFUNC for nested.

ye xingchen (1):
      KVM: x86: Replace IS_ERR() with IS_ERR_VALUE()

zhang songyi (3):
      KVM: x86: remove redundant ret variable
      KVM: x86/xen: Remove unneeded semicolon
      KVM: SVM: remove redundant ret variable

 Documentation/admin-guide/kernel-parameters.txt    |   7 +-
 Documentation/virt/kvm/api.rst                     | 124 +++-
 Documentation/virt/kvm/devices/vm.rst              |   4 +
 Documentation/virt/kvm/locking.rst                 |  25 +-
 Documentation/virt/kvm/x86/errata.rst              |  11 +
 MAINTAINERS                                        |   3 +-
 arch/arm64/include/asm/cache.h                     |   9 +
 arch/arm64/include/asm/el2_setup.h                 |  99 +++
 arch/arm64/include/asm/esr.h                       |   4 +
 arch/arm64/include/asm/kvm_arm.h                   |  23 +-
 arch/arm64/include/asm/kvm_emulate.h               |  70 ++-
 arch/arm64/include/asm/kvm_host.h                  |  67 +-
 arch/arm64/include/asm/kvm_hyp.h                   |   1 +
 arch/arm64/include/asm/kvm_mmu.h                   |  15 +-
 arch/arm64/include/asm/kvm_nested.h                |  20 +
 arch/arm64/include/asm/kvm_pgtable.h               |   8 +
 arch/arm64/include/asm/sysreg.h                    |  39 +-
 arch/arm64/include/uapi/asm/kvm.h                  |   1 +
 arch/arm64/kernel/cacheinfo.c                      |   5 -
 arch/arm64/kernel/cpufeature.c                     |  25 +
 arch/arm64/kernel/hyp-stub.S                       |  86 +--
 arch/arm64/kvm/Kconfig                             |   1 +
 arch/arm64/kvm/Makefile                            |   2 +-
 arch/arm64/kvm/arch_timer.c                        | 106 ++--
 arch/arm64/kvm/arm.c                               | 109 ++--
 arch/arm64/kvm/emulate-nested.c                    | 203 +++++++
 arch/arm64/kvm/fpsimd.c                            |   1 +
 arch/arm64/kvm/guest.c                             |   6 +
 arch/arm64/kvm/handle_exit.c                       |  47 +-
 arch/arm64/kvm/hyp/exception.c                     |  48 +-
 arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h         |  21 +-
 arch/arm64/kvm/hyp/nvhe/hyp-init.S                 |   1 +
 arch/arm64/kvm/hyp/nvhe/sys_regs.c                 |   1 +
 arch/arm64/kvm/hyp/pgtable.c                       |  43 +-
 arch/arm64/kvm/hyp/vhe/switch.c                    |  26 +-
 arch/arm64/kvm/hypercalls.c                        |   2 +-
 arch/arm64/kvm/inject_fault.c                      |  61 +-
 arch/arm64/kvm/mmu.c                               |  46 +-
 arch/arm64/kvm/nested.c                            | 161 +++++
 arch/arm64/kvm/pvtime.c                            |   8 +-
 arch/arm64/kvm/reset.c                             |  25 +-
 arch/arm64/kvm/sys_regs.c                          | 459 ++++++++++----
 arch/arm64/kvm/sys_regs.h                          |  14 +-
 arch/arm64/kvm/trace_arm.h                         |  59 ++
 arch/arm64/kvm/vgic/vgic-init.c                    |  21 +-
 arch/arm64/kvm/vgic/vgic-mmio.c                    |  13 +-
 arch/arm64/kvm/vgic/vgic-v3.c                      |   9 +-
 arch/arm64/kvm/vmid.c                              |   6 +-
 arch/arm64/tools/cpucaps                           |   1 +
 arch/arm64/tools/gen-sysreg.awk                    |  20 +-
 arch/arm64/tools/sysreg                            |  17 +
 arch/mips/include/asm/kvm_host.h                   |   3 +-
 arch/mips/kvm/Kconfig                              |   1 +
 arch/mips/kvm/Makefile                             |   2 +-
 arch/mips/kvm/callback.c                           |  14 -
 arch/mips/kvm/mips.c                               |  34 +-
 arch/mips/kvm/vz.c                                 |   7 +-
 arch/powerpc/include/asm/kvm_host.h                |   3 -
 arch/powerpc/include/asm/kvm_ppc.h                 |   1 -
 arch/powerpc/kvm/book3s.c                          |  12 +-
 arch/powerpc/kvm/booke.c                           |   2 +-
 arch/powerpc/kvm/e500.c                            |   6 +-
 arch/powerpc/kvm/e500mc.c                          |   8 +-
 arch/powerpc/kvm/powerpc.c                         |  20 -
 arch/riscv/include/asm/kvm_host.h                  |  11 +-
 arch/riscv/include/asm/kvm_vcpu_pmu.h              | 107 ++++
 arch/riscv/include/asm/kvm_vcpu_sbi.h              |  13 +-
 arch/riscv/include/asm/sbi.h                       |   7 +-
 arch/riscv/kvm/Kconfig                             |   1 +
 arch/riscv/kvm/Makefile                            |   1 +
 arch/riscv/kvm/main.c                              |  26 +-
 arch/riscv/kvm/mmu.c                               |  20 +-
 arch/riscv/kvm/tlb.c                               |   4 +
 arch/riscv/kvm/vcpu.c                              |   7 +
 arch/riscv/kvm/vcpu_exit.c                         |   9 +
 arch/riscv/kvm/vcpu_insn.c                         |   4 +-
 arch/riscv/kvm/vcpu_pmu.c                          | 633 +++++++++++++++++++
 arch/riscv/kvm/vcpu_sbi.c                          |  72 ++-
 arch/riscv/kvm/vcpu_sbi_base.c                     |  27 +-
 arch/riscv/kvm/vcpu_sbi_hsm.c                      |  28 +-
 arch/riscv/kvm/vcpu_sbi_pmu.c                      |  86 +++
 arch/riscv/kvm/vcpu_sbi_replace.c                  |  50 +-
 arch/riscv/kvm/vcpu_sbi_v01.c                      |  17 +-
 arch/riscv/kvm/vmid.c                              |   4 +-
 arch/s390/include/asm/kvm_host.h                   |   1 -
 arch/s390/kvm/gaccess.c                            | 109 ++++
 arch/s390/kvm/gaccess.h                            |   3 +
 arch/s390/kvm/interrupt.c                          |  13 +-
 arch/s390/kvm/kvm-s390.c                           | 348 ++++++-----
 arch/s390/kvm/kvm-s390.h                           |   2 +-
 arch/s390/kvm/pci.c                                |   2 +-
 arch/s390/kvm/pci.h                                |   2 +-
 arch/x86/events/intel/core.c                       |   1 +
 arch/x86/events/intel/ds.c                         |   4 +-
 arch/x86/include/asm/cpufeatures.h                 |   3 +
 arch/x86/include/asm/hyperv-tlfs.h                 |   3 +
 arch/x86/include/asm/idtentry.h                    |  16 +-
 arch/x86/include/asm/kvm-x86-ops.h                 |   2 +-
 arch/x86/include/asm/kvm_host.h                    | 109 ++--
 arch/x86/include/asm/reboot.h                      |   2 +
 arch/x86/include/asm/virtext.h                     |  16 +-
 arch/x86/include/asm/xen/hypervisor.h              |   4 +-
 arch/x86/include/uapi/asm/kvm.h                    |  34 +-
 arch/x86/kernel/cpu/mshyperv.c                     |   2 +-
 arch/x86/kernel/crash.c                            |  17 +-
 arch/x86/kernel/nmi.c                              |   8 +-
 arch/x86/kernel/reboot.c                           |  88 ++-
 arch/x86/kernel/smp.c                              |   6 +-
 arch/x86/kvm/Kconfig                               |   1 +
 arch/x86/kvm/cpuid.c                               |  43 +-
 arch/x86/kvm/debugfs.c                             |   2 +
 arch/x86/kvm/emulate.c                             |  18 +-
 arch/x86/kvm/hyperv.c                              |  85 ++-
 arch/x86/kvm/hyperv.h                              |  27 +
 arch/x86/kvm/i8254.c                               |   4 +-
 arch/x86/kvm/i8259.c                               |   4 +-
 arch/x86/kvm/ioapic.c                              |   1 +
 arch/x86/kvm/irq.c                                 |   1 +
 arch/x86/kvm/irq_comm.c                            |   7 +-
 arch/x86/kvm/kvm_cache_regs.h                      |  12 +
 arch/x86/kvm/kvm_emulate.h                         |   7 +-
 arch/x86/kvm/kvm_onhyperv.c                        |   1 +
 arch/x86/kvm/lapic.c                               | 404 +++++++++----
 arch/x86/kvm/lapic.h                               |   4 +
 arch/x86/kvm/mmu.h                                 |   6 +-
 arch/x86/kvm/mmu/mmu.c                             | 320 ++++++----
 arch/x86/kvm/mmu/mmu_internal.h                    |  22 +-
 arch/x86/kvm/mmu/page_track.c                      |   1 +
 arch/x86/kvm/mmu/paging_tmpl.h                     |  25 +-
 arch/x86/kvm/mmu/spte.c                            |  10 +-
 arch/x86/kvm/mmu/spte.h                            |  20 +-
 arch/x86/kvm/mmu/tdp_iter.c                        |  12 +-
 arch/x86/kvm/mmu/tdp_mmu.c                         |  20 +-
 arch/x86/kvm/mmu/tdp_mmu.h                         |  25 +-
 arch/x86/kvm/mtrr.c                                |   1 +
 arch/x86/kvm/pmu.c                                 | 290 +++++++--
 arch/x86/kvm/pmu.h                                 |  13 +-
 arch/x86/kvm/reverse_cpuid.h                       |   7 +
 arch/x86/kvm/smm.c                                 |   3 +-
 arch/x86/kvm/svm/avic.c                            | 374 +++++-------
 arch/x86/kvm/svm/nested.c                          |   5 +-
 arch/x86/kvm/svm/pmu.c                             |   4 +
 arch/x86/kvm/svm/sev.c                             |   7 +-
 arch/x86/kvm/svm/svm.c                             | 131 ++--
 arch/x86/kvm/svm/svm.h                             |  58 +-
 arch/x86/kvm/svm/svm_onhyperv.c                    |   1 +
 arch/x86/kvm/svm/svm_onhyperv.h                    |   8 +-
 arch/x86/kvm/vmx/capabilities.h                    |   4 +-
 arch/x86/kvm/vmx/hyperv.c                          |  87 ++-
 arch/x86/kvm/vmx/hyperv.h                          | 128 ++--
 arch/x86/kvm/vmx/nested.c                          |  24 +-
 arch/x86/kvm/vmx/pmu_intel.c                       |  28 +-
 arch/x86/kvm/vmx/posted_intr.c                     |   2 +
 arch/x86/kvm/vmx/sgx.c                             |   5 +-
 arch/x86/kvm/vmx/vmcs.h                            |   4 +-
 arch/x86/kvm/vmx/vmcs12.c                          |   1 +
 arch/x86/kvm/vmx/vmenter.S                         |  80 +--
 arch/x86/kvm/vmx/vmx.c                             | 624 ++++++++++---------
 arch/x86/kvm/vmx/vmx.h                             |  18 +-
 arch/x86/kvm/vmx/vmx_ops.h                         |   6 +-
 arch/x86/kvm/x86.c                                 | 557 +++++++++--------
 arch/x86/kvm/x86.h                                 |  18 +-
 arch/x86/kvm/xen.c                                 |  27 +
 arch/x86/kvm/xen.h                                 |   7 +
 drivers/irqchip/irq-apple-aic.c                    |  53 +-
 drivers/perf/riscv_pmu_sbi.c                       |  64 +-
 drivers/s390/virtio/virtio_ccw.c                   |  46 +-
 include/kvm/arm_arch_timer.h                       |   6 +-
 include/kvm/arm_vgic.h                             |   4 +
 include/linux/cpuhotplug.h                         |   5 +-
 include/linux/kvm_host.h                           |  19 +-
 include/linux/kvm_types.h                          |   2 +-
 include/linux/perf/riscv_pmu.h                     |   5 +
 include/uapi/linux/kvm.h                           |   9 +
 tools/testing/selftests/kvm/Makefile               |   4 +
 .../selftests/kvm/aarch64/page_fault_test.c        |   2 -
 tools/testing/selftests/kvm/config                 |   1 +
 .../testing/selftests/kvm/include/x86_64/hyperv.h  | 149 +++--
 .../selftests/kvm/include/x86_64/processor.h       |  31 +-
 .../testing/selftests/kvm/kvm_binary_stats_test.c  |  21 +-
 tools/testing/selftests/kvm/lib/elf.c              |   2 +
 tools/testing/selftests/kvm/lib/guest_modes.c      |   2 +-
 tools/testing/selftests/kvm/lib/kvm_util.c         |   4 +-
 tools/testing/selftests/kvm/lib/x86_64/processor.c |  46 +-
 tools/testing/selftests/kvm/memslot_perf_test.c    |   5 +-
 tools/testing/selftests/kvm/s390x/memop.c          | 672 ++++++++++++++++-----
 .../kvm/x86_64/exit_on_emulation_failure_test.c    |   3 -
 .../selftests/kvm/x86_64/fix_hypercall_test.c      |   4 +-
 tools/testing/selftests/kvm/x86_64/hyperv_clock.c  |   2 +-
 .../kvm/x86_64/hyperv_extended_hypercalls.c        |  97 +++
 .../testing/selftests/kvm/x86_64/hyperv_features.c | 339 +++++++----
 .../selftests/kvm/x86_64/mmio_warning_test.c       |   2 +-
 .../selftests/kvm/x86_64/pmu_event_filter_test.c   | 385 +++++++++++-
 tools/testing/selftests/kvm/x86_64/tsc_msrs_test.c |  16 +-
 .../vmx_exception_with_invalid_guest_state.c       |   2 +-
 .../selftests/kvm/x86_64/xapic_state_test.c        |  55 ++
 .../testing/selftests/kvm/x86_64/xen_shinfo_test.c |  15 +-
 virt/kvm/Kconfig                                   |   3 +
 virt/kvm/coalesced_mmio.c                          |   8 +-
 virt/kvm/kvm_main.c                                | 297 ++++-----
 200 files changed, 7274 insertions(+), 2928 deletions(-)

diff --cc arch/x86/include/asm/cpufeatures.h
index 389ea336258f,cdb7e1492311..000000000000
--- a/arch/x86/include/asm/cpufeatures.h
+++ b/arch/x86/include/asm/cpufeatures.h
@@@ -314,8 -312,9 +314,11 @@@
  #define X86_FEATURE_AVX_VNNI		(12*32+ 4) /* AVX VNNI instructions */
  #define X86_FEATURE_AVX512_BF16		(12*32+ 5) /* AVX512 BFLOAT16 instructions */
  #define X86_FEATURE_CMPCCXADD           (12*32+ 7) /* "" CMPccXADD instructions */
 +#define X86_FEATURE_ARCH_PERFMON_EXT	(12*32+ 8) /* "" Intel Architectural PerfMon Extension */
+ #define X86_FEATURE_FZRM		(12*32+10) /* "" Fast zero-length REP MOVSB */
+ #define X86_FEATURE_FSRS		(12*32+11) /* "" Fast short REP STOSB */
+ #define X86_FEATURE_FSRC		(12*32+12) /* "" Fast short REP {CMPSB,SCASB} */
 +#define X86_FEATURE_LKGS		(12*32+18) /* "" Load "kernel" (userspace) GS */
  #define X86_FEATURE_AMX_FP16		(12*32+21) /* "" AMX fp16 Support */
  #define X86_FEATURE_AVX_IFMA            (12*32+23) /* "" Support for VPMADD52[H,L]UQ */
  
diff --cc arch/x86/kvm/reverse_cpuid.h
index 81f4e9ce0c77,4945456fd646..000000000000
--- a/arch/x86/kvm/reverse_cpuid.h
+++ b/arch/x86/kvm/reverse_cpuid.h
@@@ -68,7 -72,7 +72,8 @@@ static const struct cpuid_reg reverse_c
  	[CPUID_12_EAX]        = {0x00000012, 0, CPUID_EAX},
  	[CPUID_8000_001F_EAX] = {0x8000001f, 0, CPUID_EAX},
  	[CPUID_7_1_EDX]       = {         7, 1, CPUID_EDX},
+ 	[CPUID_8000_0007_EDX] = {0x80000007, 0, CPUID_EDX},
 +	[CPUID_8000_0021_EAX] = {0x80000021, 0, CPUID_EAX},
  };
  
  /*

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ