From: Madhavan Srinivasan <maddy@linux.ibm.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
torvalds@linux-foundation.org
Subject: Re: [GIT PULL] KVM changes for Linux 7.3
Date: Thu, 10 Sep 2026 12:44:25 +0530 [thread overview]
Message-ID: <85778327-e87d-4b3b-82c7-efab099d1c75@linux.ibm.com> (raw)
In-Reply-To: <20260825155236.46673-1-pbonzini@redhat.com>
On 8/25/26 9:22 PM, Paolo Bonzini wrote:
> Linus,
>
> The following changes since commit db2ddb87143519e20a95aa36c60b36107b736a58:
>
> Linux 7.2-rc7 (2026-08-09 14:54:50 -0700)
>
> 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 76671054f9a1ff6abb976583cd8da37650acdc97:
>
> Merge tag 'kvmarm-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD (2026-08-24 12:42:07 -0400)
>
> There are quite a few conflicts with the arch pull requests, mostly due
> to cleanups touching KVM from their side. This is also why I sent
> the pull request a bit later, to ensure that everything had reached
> your tree. So I get to do all the explaining, and give nicknames to
> the conflicts.
>
> arch/arm64/tools/cpucaps - the unlucky one:
>
> * BBML2_NOABORT was renamed to BBML3 in the Arm pull request. Of course,
> it was also out of alphabetical order and fell exactly where these
> commits add NV2P1/NV3. Remove it as is already the case in your tree.
>
> * More normally, "us" adding WORKAROUND_GICv3_BROKEN_SEIS where
> "they" added WORKAROUND_NVIDIA_OLYMPUS_1027
>
> arch/riscv/kvm/vcpu_vector.c - the "falcon eye" conflict:
>
> * easy but difficult to spot... the RISC-V pull request changed lowercase v
> to uppercase V:
>
> - if (riscv_isa_extension_available(isa, v))
> + if (riscv_isa_extension_available(isa, V))
>
> This one introduces riscv_v_flags_set(), so keep my version but with
> the uppercase V in the conditional.
>
> arch/x86/kvm/{x86,msrs}.c - the huuuuge one:
>
> * massive conflicting hunk due to moving code out of the file to regs.c
> and msrs.c. Kill it from x86.c, and replace one occurrence of
> static_cpu_has with cpu_feature_enabled in msrs.c
>
> include/uapi/linux/kvm.h - the ugly one:
>
> * the easiest but also the ugliest, PPC KVM (which doesn't merge through
> me) added a new uapi and gave it id 250. Arm's KVM_CAP_ARM_PMU_V3_STRICT
> thus needs to be bumped to 251. PPC people should really give me their
> uAPI changes through a topic branch, even though it's a rare event.
Sorry for the delayed response,
I should have notified you or pushed the uapi changes via topic/kvm
branch. That was my mistake, my apologizes
As you said it's a rare event :) , but will be careful next time.
Thanks
Maddy
> The "git diff --cc" output is at the end of the message, it's tame
> when you look at it but still this is a lot more conflicts than usual.
>
> Thanks,
>
> Paolo
>
> ----------------------------------------------------------------
> Arm:
>
> * Add support for 'slot' based PMU events, paired with new UAPI that
> compels the user to select a specific PMU implementation
>
> * Lazy save/restore of vCPU state for pKVM, along with various fixes
> and cleanups to the management of vCPU state between the untrusted
> host and pKVM hypervisor
>
> * Disable traps of EL1 registers for nested hypervisors when FEAT_NV2p1
> is present, guaranteeing that EL2-specific register bits are stateful
> in the EL1 counterpart
>
> * Leverage FEAT_NV3 to avoid unnecessary ERET/TLBI traps when the scope
> of those instructions remains 'in host' (i.e. L1 kernel/userspace)
>
> * Pile of fixes for the management of the VNCR pseudo-TLB, such as
> under-invalidations and races with concurrent TLBIs on other vCPUs
>
> * Consolidate the non-protected and pKVM view of ICH_VTR_EL2 to a
> runtime-patched constant, allowing the same data to be shared with
> pKVM prior to dropping host privileges
>
> * Considerable pile of LLM-assisted fixes around the shop but mostly in
> the VGIC, our in-kernel generator of bugs (and sometimes interrupts)
>
> LoongArch:
>
> * Advertise already-supported capabilities.
>
> * Some bug fixes about timer and MMIO.
>
> * Some hardening about interrupt injection.
>
> * Replace kvm_err() with kvm_pr_unimpl().
>
> * Add FPU/LSX/LASX test cases for selftests.
>
> RISC-V:
>
> * Svadu/Zicfiss/Zicfilp FWFT support for Guest
>
> * Use try_cmpxchg for IMSIC MRIF RMW
>
> * More arch-specific tracepoints in KVM RISC-V
>
> * Eager page splitting when enabling dirty logging
>
> * Optimize hfence request handling for SMP Guests
>
> * Improve dirty log clearing by skipping zero bits in mask
>
> * Guard HFENCE range loops against overflow
>
> * CPU PM notifiers in KVM RISC-V for non-retentive idle states
>
> * Fix kernel-mode vector context save/restore for Guest
>
> s390:
>
> * Fixes for vfio-ap
>
> * Fixes for the gmap rework
>
> * Fixes for vsie
>
> * AI triggered fixes all over
>
> * diag9c tracing
>
> * code move preparation for the additional arm64 support
>
> * enable CONTEXT_ANALYSIS
>
> x86:
>
> * Perform spring cleaning on x86.{c,h} and asm/kvm_host.h, by adding regs.c
> (the kvm_cache_regs.h => regs.h is already applied) and msrs.{c,h}, and moving
> relevant code out of x86.c.
>
> * Split kvm_mmu in three parts, respectively to describe the format of page
> tables, walking the guest page tables and building the page tables. Always
> use the same page table walker kvm->arch.gva_walk as the entry point to
> convert a guest's virtual address, where the previous code used two
> different kvm_mmu structs depending on whether the walk included nested
> EPT/NPT or not. Make page fault vmexits reuse the permission checking
> machinery that is used for guest page faults. This is both a cleanup
> and a baby step towards supporting XS/XU memory permissions.
>
> * Document some of the "fun" gotchas with the APIC base when creating IRQCHIPs
> on x86.
>
> * Remove a defunct masterclock update from kvm_xen_shared_info_init(). It
> could result in incorrect kvmclock due to triggering an unnecessary
> switch to/from masterclock mode.
>
> * Skip Xen runstate time updates if time has effectively gone backwards, so
> that the guest doesn't report 100% steal time for a very, very long time.
>
> * Drop KVM's runtime updates of the Xen PV timing CPUID leaf, as KVM was
> updating the wrong sub-leaf, and upstream KVM will soon provide all the
> information needed by userspace to populate the CPUID field itself.
>
> * Fix a bug where KVM would walk a newly created rmap without holding the rmap
> lock (or mmu_lock) during aging.
>
> * Fix a bug where aging TDP MMU SPTEs could clobber FROZEN SPTEs.
>
> * 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.
>
> x86 (Intel):
>
> * Zero a vCPU's entry in VMX's Posted Interrupt Descriptor table used for IPI
> virtualization when the vCPU is freed, to fix a use-after-free where hardware
> will write to a freed vCPU's PID.
>
> * Service local TLB flushes on a failed nested VM-Enter to fix a bug where KVM
> could miss a TLB on a future, successful VM-Enter with the same L2 VPID.
>
> * Cap the maximum value shoved into the VMX Preemption Timer to workaround an
> erratum that affects all existing Intel CPUs that support CPUID 0x15.
>
> * Fix VPID virtualization bugs where KVM would fail to flush hardware TLBs.
>
> * Harden the TDX "populate" ioctls against bad input, and to prepare
> for supporting in-place private<=>shared conversion.
>
> x86 (AMD):
>
> * Forcefully invalidate SNP VMSA pages if their backing guest_memfd page is
> zapped/invalidated, e.g. due to a PUNCH_HOLE in response to a Page-State
> Change request.
>
> * Remove a dying VM from the GA Log notifier list before the VM is actually
> destroyed, to fix a potential use-after-free.
>
> * While FOLL_WRITE was needed in the past to trigger CoW unsharing, nowadays
> FOLL_LONGTERM does that already even without FOLL_WRITE, and in fact,
> get_user_pages() actually disallows FOLL_WRITE together with FOLL_LONGTERM.
> So don't pass FOLL_WRITE when registering encrypted memory regions, i.e. when
> pinning SEV/SEV-ES guest memory, to fix a regression with file-backed memory
> introduced by KVM's (correct) usage of long-term pins.
>
> (This was reviewed by mm maintainers; for more information, see commit
> ee1a586dd1fa2f245b3b753a3e44d9263a49240b).
>
> * Allocate full pages for SEV/SEV-ES {DE,EN}CRYPT ops on SNP-enabled hosts to
> fix a data corruption issue due to the PSP driver assigning to-be-written
> pages to firmware (as required by the SNP specs).
>
> * Unconditionally intercept ICBEP so that KVM generates the correct guest RIP
> when handling an ICEBP-induced TASK_SWITCH #VMEXIT.
>
> * Harden the SNP "populate" ioctls against bad input, and to prepare
> for supporting in-place private<=>shared conversion.
>
> Generic:
>
> * Remove kvm_debugfs_dir if kvm_init() fails after creating KVM's debugfs.
>
> * Add a per-VM bitmap to track which vCPU IDs have been "claimed" but for
> which the vCPU isn't yet online, and use the bitmap to reject duplicate IDs
> before calling into arch code. This allows arch code to consume vcpu_id
> without having to worry about cross-vCPU clobbering (at least s390 and x86
> have had related bugs).
>
> * Rework the so called "prepare" and "invalidate" guest_memfd hooks to prepare
> for in-place private<=>shared conversion, and clean up a few warts along the
> way.
>
> Selftests:
>
> * Automatically allocate a full page for L2 guest stacks on x86 instead of
> requiring test-specific L1 guest code to carve out a portion of the L1
> stack for L2 usage, and to ensure the L2 stack also adheres to the x86-64
> calling convention ABI.
>
> * Add a selftest to verify {Guest,Host}-Only behavior in x86's mediated PMU.
>
> * Clean up nested SVM's handling of GPRs on L2<=>L1 transitions, reuse the
> functionality for nested VMX, and drop the ucall hack that was fudging
> around the lack of GPR switching on nVMX.
>
> * Add a stress test to verify KVM doesn't clobber/drop #PF state, e.g. CR2,
> across save/restore, including when L2 is active.
>
> * Add a test to verify KVM_CREATE_VM accepts exactly what is reported by
> KVM_CAP_VM_TYPES.
>
> * Misc selftests fixes and cleanups
>
> * Fix several issues with seeding the pRNG, and rework the pRNG APIs to that
> the pRNG can be sanely used in host code, not just guest code.
>
> * Add an IRQ test to validate virtual IRQ deliverty for IRQs wired up via
> KVM_IRQFD + KVM_SET_GSI_ROUTING, with optional support for triggering IRQs
> via writes to an assigned VFIO device.
>
> * Add syscall wrappers to assert success on a variety of pthreads and CPU
> affinity APIs.
>
> * Set vCPU pthread affinity as early as possible to reduce contention issues
> that were surfaced by PREEMPT_LAZY, which result in runtimes of over a
> minute on large hosts, versus the expected ~5 seconds.
>
> * Rework the PMU counters test to run each testcase using a single VM with
> many vCPUs for each sub-testcase, instead of using a unique VM for each
> sub-testcase. This cuts the runtime by ~20x.
>
> Miscellaneous:
>
> * MAINTAINERS updates for vfio-ap, guest_memfd, kvm-x86. Mostly representing
> the status quo more accurately, but also... welcome David Hildenbrand
> as guest_memfd reviewer!
>
> ----------------------------------------------------------------
> Ackerley Tng (1):
> KVM: guest_memfd: Only "prepare" folios for private pages
>
> Andy Chiu (3):
> riscv: vector: refactor riscv_v_start_kernel_context
> riscv: vector: allow non-preemptible kernel-mode vector with IRQs off
> RISC-V: KVM: fix vcpu vector context handling for kernel-mode vector
>
> Anthony Krowiak (9):
> s390/vfio-ap: fix stale pqap_hook pointer on error in vfio_ap_mdev_set_kvm()
> s390/vfio-ap: Fix stale do_remove flag across iterations in vfio_ap_mdev_cfg_remove
> s390/vfio-ap: Fix dereference matrix_mdev->kvm without checking for NULL
> s390/vfio-ap: Fix missing lock required to access list of ap_matrix_mdev objects
> s390/vfio-ap: Fix required lock not held during update of ap_matrix_mdev object
> s390/vfio-ap: Fix control domain removal in vfio_ap_mdev_cfg_remove
> s390/vfio-ap: fix potential use of uninitialized apm_filtered bitmap
> s390/vfio-ap: Fix hot-unplug skipped when last AP adapter or domain removed
> s390/vfio-ap: Fix NULL deref in status_show() during queue probe
>
> Bibo Mao (8):
> LoongArch: KVM: Set vcpu->cpu before IN_GUEST_MODE is set
> LoongArch: KVM: Set default MAILBOX access size with 8
> LoongArch: KVM: Return directly when IPI address is not aligned
> LoongArch: KVM: Fix uninitialized stack variable issue with dmsintc
> LoongArch: KVM: Use internal API to deliver interrupt in kernel mode
> LoongArch: KVM: Replace kvm_err() with kvm_pr_unimpl()
> KVM: LoongArch: selftests: Enable LSX/LASX by auto detection
> KVM: LoongArch: selftests: Add FPU/LSX/LASX test cases
>
> Binbin Wu (1):
> KVM: x86: Fix emulated CPUID features being applied to wrong sub-leaf
>
> Bingyu.Xian (2):
> RISC-V: KVM: Use unsigned int for vma_pageshift
> RISC-V: KVM: Widen G-stage fault address to gpa_t
>
> Bradley Morgan (2):
> KVM: arm64: Skip cache maintenance for non-cacheable pKVM mappings
> KVM: arm64: Top up stage-2 memcache for dirty logging faults
>
> 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
>
> Christian Borntraeger (15):
> KVM: s390: move some facilities from FACILITIES_KVM_CPUMODEL to FACILITIES_KVM
> KVM: s390: Remove user triggerable WARN_ON
> KVM: s390: Zero initialize data structures for inject_pfault_token
> KVM: s390: Zero initialize irq in reinject_machine_check
> KVM: s390: Fix memory leak in guest debug handling
> KVM: s390: Fix old_data leak in guest debug error path
> KVM: s390: Take srcu when importing watchpoint data
> KVM: s390: Free guest debug data on vcpu destroy
> KVM: s390: Fix length check __import_wp_info()
> KVM: s390: Fix memory corruption by not reinjecting CK machine checks
> KVM: s390: keyop: use mmu_lock to read gmap->asce
> KVM: s390: vsie: zero stale crypto bits
> KVM: s390: pv: Fix rc/rrc offset for PVM_DUMP
> KVM: s390: Restore sigset on error path
> Merge remote-tracking branch 'kvms390/master' into 'kvms390/next'
>
> Christoph Schlameuss (6):
> KVM: s390: Remove double 64bscao feature check
> KVM: s390: vsie: Remove duplicate assertion
> KVM: s390: vsie: Convert shift to phys_to_pfn()
> KVM: s390: vsie: Assert mcck_info offset in vsie_page
> KVM: s390: vsie: Assert crycb alignment in vsie_page
> KVM: s390: vsie: Create constant SCB_ALIGNMENT_SHIFT
>
> Ciunas Bennett (2):
> KVM: s390: Refactor __diag_time_slice_end_directed for single exit point
> KVM: s390: Add tracepoint for DIAG 9c directed yield operations
>
> Claudio Imbrenda (7):
> KVM: s390: Properly handle NULL pointer in dat_cond_set_storage_key()
> KVM: s390: Use srcu in kvm_arch_vcpu_unlocked_ioctl()
> KVM: s390: Fix get_all_floating_irqs()
> KVM: s390: Fix pgste_get_trylock_multiple()
> KVM: s390: Fix IRQ injection with SIGP Stop and Store Status
> KVM: s390: Fix kvm_s390_clear_pv_state()
> KVM: s390: Fix potential tiny kernel stack leak
>
> Congkai Tan (3):
> KVM: arm64: Expose PMMIR_EL1.SLOTS under strict PMUv3 UAPI
> KVM: arm64: Advertise STALL_SLOT* in PMCEID1 under strict PMUv3 UAPI
> KVM: arm64: Add KVM_ARM_VCPU_PMU_V3_STRICT vCPU feature
>
> David Matlack (11):
> KVM: selftests: Build and link selftests/vfio/lib into KVM selftests
> KVM: selftests: Add macros to read/write+sync to/from guest memory
> KVM: selftests: Add an irqfd send+receive (and later IRQ bypass) test
> KVM: selftests: Add helper to get host IRQ from device MSI-X for IRQ bypass test
> KVM: selftests: Add VFIO device support to eventfd IRQ test
> KVM: selftests: Verify interrupts are received when IRQ affinity changes in IRQ test
> KVM: selftests: Add option to set empty routing between IRQs in eventfd IRQ test
> KVM: selftests: Make number of IRQs configurable in IRQ test
> KVM: selftests: Verify vCPU migration during IRQ delivery in IRQ test
> KVM: selftests: Make number of vCPUs configurable in IRQ test
> KVM: selftests: Add xAPIC support in eventfd IRQ test
>
> David Woodhouse (4):
> KVM: SVM: Always intercept ICEBP to workaround AMD ICEBP+TASK_SWITCH flaws
> KVM: x86/xen: Do not corrupt KVM clock in kvm_xen_shared_info_init()
> KVM: x86/xen: Prevent runstate times from becoming negative
> KVM: x86: Remove runtime Xen TSC frequency CPUID update
>
> Dmytro Maluka (2):
> KVM: Check for duplicate vcpu_id as early as possible
> KVM: VMX: Fix stale PID-pointer table entry left after vCPU free
>
> 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
>
> Fuad Tabba (21):
> KVM: arm64: Drop the unused EL2-side is_created write
> KVM: arm64: Remove unreachable early checks in pkvm_init_host_vm()
> KVM: arm64: Drop redundant READ_ONCE() in pkvm_hyp_vm_is_created()
> KVM: arm64: Sync SCTLR_EL1 when injecting an exception into a pVM
> KVM: arm64: Flush external_mdscr_el1 to the pKVM hyp vCPU
> KVM: arm64: selftests: Add a userspace watchpoint test
> KVM: arm64: Extract MPIDR computation into a shared header
> KVM: arm64: Make vcpu_{read,write}_sys_reg available to HYP code
> KVM: arm64: Factor out reusable vCPU reset helpers
> KVM: arm64: Move PSCI helper functions to a shared header
> KVM: arm64: Implement lazy vCPU state sync for non-protected guests
> KVM: arm64: Top up the memcache for pKVM permission faults
> KVM: arm64: Skip pKVM stage-2 flush when FWB is enabled
> KVM: arm64: Don't WARN on pKVM stage-2 map failures
> KVM: arm64: Don't advertise eager page splitting under pKVM
> KVM: arm64: selftests: Add stage-2 block transition test
> KVM: arm64: vgic-its: Don't dereference a NULL collection on ITT save
> KVM: arm64: vgic: Don't leak the SPI array when init is retried
> KVM: arm64: vgic-its: Don't save collections the table cannot hold
> KVM: arm64: vgic-its: Point saved ITEs at the next valid entry
> KVM: arm64: vgic: Reset in_kernel on private IRQ allocation failure
>
> Guidong Han (1):
> RISC-V: KVM: Fix PMU event info array size overflow
>
> Hao Zhang (2):
> KVM: VMX: Use cached vcpu_vmx pointer in MSR and segment helpers
> KVM: selftests: Extend the invalid nVMX guest state test to cover RSM
>
> Heiko Carstens (4):
> MAINTAINERS: Update s390 specific vfio sections
> s390/vfio_ccw: Add __must_hold() attribute to vfio_ccw_sch_quiesce()
> s390/cio: Enable CONTEXT_ANALYSIS
> s390/virtio: Enable CONTEXT_ANALYSIS
>
> Hemanth Selam (1):
> KVM: selftests: Add a test for KVM_CREATE_VM VM type enforcement
>
> Inochi Amaoto (11):
> RISC-V: KVM: Add support for Svadu FWFT features
> KVM: riscv: selftests: add Svadu FWFT extension to get-reg-list test
> RISC-V: KVM: Allow Zicfiss/Zicfilp extensions for Guest/VM
> RISC-V: KVM: Add ssp context save/restore
> RISC-V: KVM: Handle software-check exits for VCPU
> RISC-V: KVM: Add support for control-flow integrity FWFT features
> KVM: riscv: selftests: add Zicfiss/Zicfilp extension to get-reg-list test
> RISC-V: KVM: Add SBI extension validate callback
> RISC-V: KVM: Add SBI FWFT validation support
> RISC-V: KVM: Reset the SBI extension when disable it
> RISC-V: KVM: Mark the reset callback of FWFT extension always dirties CSR
>
> Jim Mattson (2):
> KVM: selftests: Add svm_pmu_host_guest_test for Host-Only/Guest-Only bits
> KVM: VMX: Cap VMX preemption timer to work around Intel erratum
>
> Joerg Roedel (1):
> KVM: SEV: Explicitly disallow NULL user address for SNP_LAUNCH_UPDATE
>
> Josh Hilke (6):
> KVM: selftests: Rename guest_rng to kvm_rng
> KVM: selftests: Add helper to generate random u64 in range [min,max]
> KVM: selftests: Add a helper to set proc IRQ affinity for IRQ test
> KVM: selftests: Add kvm_gettid() wrapper and convert users
> KVM: selftests: Add kvm_sched_getaffinity() wrapper and convert users
> KVM: selftests: Add a utility to pin a task to a random CPU, given a CPU set
>
> Kai Huang (1):
> KVM: x86: Use KVM_X86_OP() for the .pi_update_irte() hook
>
> Kajetan Puchalski (1):
> KVM: arm64: vgic: Fix detection of MI on no pending LR
>
> Karl Mehltretter (2):
> KVM: arm64: Preserve GPRs for AArch32 CP64 reads generating an UNDEF
> KVM: arm64: GICv2: Don't WARN on out-of-range GICV_DIR INTID
>
> Like Xu (1):
> KVM: x86/pmu: Clean up vPMU comments and stray blank lines
>
> Marc Zyngier (48):
> KVM: arm64: vgic-v3: Make vtr_to_* helpers use architectural field symbols
> KVM: arm64: Move GICv3 broken SEIS implementation detection to a CPU errrata
> KVM: arm64: Add a helper providing an inlined literal value for ICH_VTR_EL2
> KVM: arm64: Convert most ICH_VTR_EL2 accesses to inlined literal value
> KVM: arm64: vgic-v3: Simplify initial GICv3 configuration sampling
> KVM: arm64: vgic-v3: Kill kvm_vgic_global_state.ich_vtr_el2
> KVM: arm64: Add host and hypervisor vCPU lookup primitives
> KVM: arm64: Minimise EL2's exposure of host VGIC state during world switch
> KVM: arm64: Add primitives to flush/sync the VGIC state at EL2
> arm64: sysreg: Emit RESx/UNKN values for Mapping/Fields definitions
> arm64: Update ID_AA64MMFR4_EL1 description to 2026-03 JSON release
> KVM: arm64: Merge guest's HCRX_EL2 using NV_HCRX_GUEST_EXCLUDE
> KVM: arm64: Drop __HCRX_EL2_* masks
> KVM: arm64: Plumb HCRX_EL2.SRMASKEn in HCRX_EL2 sanitisation
> KVM: arm64: Classify CPTR_EL2 as a SR_LOC_SPECIAL register
> KVM: arm64: Don't evaluate HCR_EL2.NV nor HFGITR_EL2.ERET on ERET fast path
> arm64: Add ARM64_HAS_NV2P1 capability
> KVM: arm64: Relax CPTR_EL2 handling when FEAT_NV2p1 is present
> KVM: arm64: Relax CNTHCTL_EL2 handling when FEAT_NV2p1 is present
> KVM: arm64: Expose FEAT_NV2p1 to NV guests
> arm64: Add FEAT_NV2p1 detection
> arm64: sysreg: Add NVHCR_EL2 description as a mirror of HCR_EL2
> arm64: sysreg: Add HCRX_EL2 bits related to FEAT_NV3
> arm64: Add ARM64_HAS_NV3 capability
> KVM: arm64: Split NV-specific exit fixups from the non-NV handling
> KVM: arm64: Add NV3 control bits to HCRX_EL2 sanitisation
> KVM: arm64: Add kvm_has_nv{2,3}() predicates
> KVM: arm64: Make HCR_EL2 a non-VNCR register
> KVM: arm64: Add sanitisation for NVHCR_EL2
> KVM: arm64: Add NVHCR_EL2 handling to the sysreg array
> KVM: arm64: Add routing for NVHCR_EL2 trap
> KVM: arm64: Add NVHCR_EL2 context switching
> KVM: arm64: Engage NV3 ERET trap elision
> KVM: arm64: Engage NV3 TLBI trap elision
> KVM: arm64: Add FEAT_NV3 detection
> KVM: arm64: Expose FEAT_NV3 to guests
> KVM: arm64: selftest: Add NVHCR_EL2 to get-reg-list
> arm64: Add override for ID_AA64MMFR4_EL1.NV_frac
> KVM: arm64: Remove VM-wide VNCR mapping counter
> KVM: arm64: Handle negative S1 walk levels in VNCR TLB size evaluation
> KVM: arm64: Consider SCTLR_EL2.M when mapping the L1 VNCR page
> KVM: arm64: Correctly handle end of VA space TLBI invalidation
> KVM: arm64: Handle VNCR TLB invalidation race with vcpu_put() VNCR unmapping
> KVM: arm64: Sign-extend VA for range-based TLBI invalidation
> KVM: arm64: Make VNCR invalidation participate in MMU invalidation retry
> KVM: arm64: Add VNCR TLB tracking again
> KVM: arm64: Make timer_get_offset() work in all contexts
> KVM: arm64: Correctly cap TLBI Range to the architural limit
>
> Mostafa Saleh (4):
> KVM: arm64: Avoid naming collision in tracing
> KVM: arm64: Optimize protected mode with FWB and DIC
> KVM: arm64: Fix timer offsets for non-protected VMs
> KVM: arm64: Fix hvhe and broken CNTVOFF_EL2
>
> Oliver Upton (7):
> KVM: arm64: Ignore writes to PMCR_EL0.N when using strict UAPI
> Merge branch 'kvm-arm64/pmu-7.3' into next
> Merge branch 'kvm-arm64/pkvm-7.3' into next
> Merge branch 'kvm-arm64/feat-nv3' into next
> Merge branch 'kvm-arm64/vncr-fixes' into next
> Merge branch 'kvm-arm64/vtr-patch' into next
> Merge branch 'kvm-arm64/misc-7.3' into next
>
> Pankaj Gupta (1):
> KVM: SEV: Drop FOLL_WRITE for encrypted region registration
>
> Paolo Bonzini (37):
> KVM: move TSS constants from kvm_host.h to tss.h
> Merge branch 'kvm-spring-clean' into HEAD
> Merge tag 'kvm-x86-selftests_l2_stacks-7.3' of https://github.com/kvm-x86/linux into HEAD
> KVM: x86/hyperv: remove unnecessary mmu_is_nested() check
> KVM: x86/mmu: introduce struct kvm_pagewalk
> KVM: x86/mmu: move get_guest_pgd to struct kvm_pagewalk
> KVM: x86/mmu: move gva_to_gpa to struct kvm_pagewalk
> KVM: x86/mmu: move get_pdptr to struct kvm_pagewalk
> KVM: x86/mmu: move inject_page_fault to struct kvm_pagewalk
> KVM: x86/mmu: move CPU-related fields to struct kvm_pagewalk
> KVM: x86/mmu: change CPU-role accessor fields to take struct kvm_pagewalk
> KVM: x86/mmu: move remaining permission fields to struct kvm_pagewalk
> KVM: x86/mmu: pass struct kvm_pagewalk to kvm_mmu_invalidate_addr
> KVM: x86/mmu: change walk_mmu to struct kvm_pagewalk
> KVM: x86/mmu: change nested_mmu.w to ngva_walk
> KVM: x86/mmu: pull struct kvm_pagewalk out of struct kvm_mmu
> KVM: x86/mmu: unify root_gva_walk and ngva_walk
> KVM: x86/mmu: cleanup functions that initialize shadow MMU
> KVM: x86/mmu: pull page format to a new struct
> KVM: x86/mmu: merge struct rsvd_bits_validate into struct kvm_page_format
> KVM: x86/mmu: parameterize update_permission_bitmask()
> KVM: x86/mmu: use kvm_page_format to test SPTEs
> Merge branch 'kvm-chainsaw' into HEAD
> Merge tag 'kvm-riscv-7.3-1' of https://github.com/kvm-riscv/linux into HEAD
> Merge tag 'kvm-s390-next-7.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD
> Merge tag 'kvm-x86-maintainers-7.3' of https://github.com/kvm-x86/linux into HEAD
> Merge tag 'loongarch-kvm-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson into HEAD
> Merge tag 'kvm-x86-generic-7.3' of https://github.com/kvm-x86/linux into HEAD
> Merge tag 'kvm-x86-selftests-7.3' of https://github.com/kvm-x86/linux into HEAD
> Merge tag 'kvm-x86-selftests2-7.3' of https://github.com/kvm-x86/linux into HEAD
> Merge tag 'kvm-x86-coco-7.3' of https://github.com/kvm-x86/linux into HEAD
> Merge tag 'kvm-x86-clocks-7.3' of https://github.com/kvm-x86/linux into HEAD
> Merge tag 'kvm-x86-mmu-7.3' of https://github.com/kvm-x86/linux into HEAD
> Merge tag 'kvm-x86-vmx-7.3' of https://github.com/kvm-x86/linux into HEAD
> Merge tag 'kvm-x86-svm-7.3' of https://github.com/kvm-x86/linux into HEAD
> Merge tag 'kvm-x86-misc-7.3' of https://github.com/kvm-x86/linux into HEAD
> Merge tag 'kvmarm-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
>
> Pengpeng Hou (4):
> RISC-V: KVM: Allow memslots ending at the GPA limit
> RISC-V: KVM: Reject overlapping AIA IMSIC address fields
> RISC-V: KVM: Guard HFENCE range loops against overflow
> RISC-V: KVM: Avoid one-word masks for SBI v0.1 all-harts
>
> Phil Rosenthal (1):
> KVM: x86/mmu: Consume the locked rmap value in the lockless rmap walk
>
> Qiang Ma (1):
> KVM: SVM: Remove redundant ret = 0 in svm_set_nested_state
>
> Qihang (1):
> KVM: arm64: vgic-v3: take an LPI reference in vgic_v3_save_pending_tables
>
> Sascha Bischoff (4):
> KVM: arm64: vgic: Free gic_kvm_info on initialization failure
> KVM: arm64: vgic: Prevent speculative SPI array underflow
> KVM: arm64: vgic: Reject out-of-range GICv5 PPI IDs
> KVM: arm64: Validate GICv5 timer PPIs before claiming ownership
>
> Sean Christopherson (128):
> KVM: selftests: Add a helper to query enable_mediated_pmu module param
> KVM: x86: Extract REGS and SREGS runtime sync code to helpers
> KVM: x86: Move get_segment_base() to regs.h, as kvm_get_segment_base()
> KVM: x86: Rename __{g,s}et_sregs2() => kvm_vcpu_ioctl_x86_{g,s}et_sregs2()
> KVM: x86: Move the bulk of register specific code from x86.c to regs.c
> KVM: x86: Move local APIC specific helpers out of asm/kvm_host.h
> KVM: x86: Move kvm_caps and kvm_host_values to asm/kvm_host.h
> KVM: x86: Swap the include order between x86.h and mmu.h
> KVM: x86: Move tdp_enabled from kvm_host.h to mmu.h
> KVM: x86: Move eager_page_split to mmu.{c,h}
> KVM: x86/hyperv: Eliminate an unnecessary include of x86.h in hyperv.h
> KVM: x86: Move kvm_{load,put}_guest_fpu() to fpu.h
> KVM: x86: Extract get/set MSR (list) ioctl logic to helpers
> KVM: x86: Expose several TSC helpers via x86.h for use by MSR code
> KVM: x86: Move the bulk of MSR specific code from x86.c to msrs.{c,h}
> KVM: x86: Move register helper declarations from kvm_host.h => regs.h
> KVM: x86: Move kvm_{g,s}et_segment() to inline helpers in regs.h
> KVM: x86: Move MSR helper declarations from kvm_host.h => msrs.h
> KVM: x86: Move "struct kvm_x86_msr_filter" definition to msrs.c
> KVM: x86/pmu: Move "struct kvm_x86_pmu_event_filter" definition to pmu.c
> KVM: x86: Move MMU helper declarations from kvm_host.h => mmu.h
> KVM: x86: Move LLDT assembly wrappers into VMX
> KVM: x86: Move misc "VALID MASK" defines from kvm_host.h => x86.c
> KVM: x86: Move __kvm_irq_line_state() from kvm_host.h => ioapic.h
> KVM: x86: Move IRQ-related helper declarations from kvm_host.h => irq.h
> KVM: x86: Move kvm_pv_send_ipi() declaration from kvm_host.h => lapic.h
> KVM: x86: Don't treat interrupts as allowed just because a nested run is pending
> KVM: x86: Rework kvm_arch_interrupt_allowed() into kvm_is_interrupt_allowed()
> KVM: x86/mmu: Move kvm_arch_async_page_ready() below kvm_tdp_page_fault()
> KVM: x86/mmu: Move kvm_mmu_do_page_fault() from mmu_internal.h => mmu.c
> KVM: x86: Move a pile of stuff from kvm_host.h => x86.h
> KVM: selftests: Initialize the default/global pRNG during kvm_selftest_init()
> KVM: selftests: Seed libc's RNG before using it to generate a seed for KVM's pRNG
> KVM: selftests: Verify non-postable IRQ remapping in IRQ test
> 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: SVM: Make kvm_x86_ops.vcpu_precreate() hook fully AVIC specific
> KVM: SVM: Do all per-VM AVIC initialization during vCPU precreation phase
> KVM: SVM: Remove VM from the GA Log notifier list before VM destruction
> KVM: SEV: Track the GPA of the guest-controlled VMSA used for SNP guests
> KVM: SEV: Extract loading of guest-provided VMSA to a separate helper
> KVM: SEV: Mark vCPU RUNNABLE after AP_CREATE, even if VMSA is unusable
> KVM: SEV: Wire up kvm_x86_ops.gmem_xxx() if and only if CONFIG_KVM_AMD_SEV=y
> KVM: x86: Serialize writes to disabled_quirks using kvm->lock
> KVM: x86: Ensure runtime reads of disabled_quirks are resolved once
> KVM: x86/mmu: Fold kvm_mmu_zap_memslot() into kvm_arch_flush_shadow_memslot()
> KVM: x86/mmu: Split kvm_mmu_zap_all_fast() into "front" and "back" halves
> KVM: x86/mmu: Use split "zap all fast" helpers when invalidating memslot
> KVM: SEV: Forcefully invalidate SNP VMSA if its backing gmem page is zapped
> KVM: SEV: Mark vCPU has having guest-provided VMSA even if its invalid
> KVM: x86: Guard .gmem_prepare() declarations with HAVE_KVM_GMEM_PREPARE=y
> KVM: selftests: Drop superfluous use of pthread_attr_setaffinity_np()
> KVM: selftests: Randomize pCPU in steal time test
> 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: SEV: Allocate full pages for {DE,EN}CRYPT ops on SNP-enabled hosts
> KVM: guest_memfd: Pass the number of pages instead of the end pfn into .invalidate()
> KVM: guest_memfd: Rename invalidate() arch hook to reclaim() and isolate it
> KVM: x86: Rename kvm_x86_ops' gmem_invalidate() to gmem_make_shared()
> KVM: guest_memfd: Drop the redundant printk on arch gmem_prepare() failure
> KVM: guest_memfd: Add helpers to query SHARED vs. PRIVATE for a given page
> KVM: guest_memfd: Rename prepare() hook and Kconfig to make_private() / CONVERT
> KVM: guest_memfd: Explicitly pass number of pages to make_private() hook
> KVM: guest_memfd: Make private exactly what can be mapped on page fault
> 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/mmu: Use CMPXCHG when clearing Accessed bit in TDP MMU
> KVM: x86/mmu: Use CMPXCHG when clearing Accessed bit in the shadow MMU
> KVM: selftests: Only link to VFIO library on x86
> KVM: VMX: Bury all of the VMX preemption timer code under CONFIG_X86_64=y
> KVM: selftests: Add a KVM syscall wrapper for sched_setaffinity()
> KVM: selftests: Set threads CPU affinity before doing work in hardware disable test
> KVM: selftests: Pre-set threads affinity in hardware disable test when possible
> KVM: selftests: Return the target CPU from pin_task_to_random_cpu()
> KVM: selftests: Extract picking of random CPU from cpu_set_t to separate API
> KVM: selftests: Affine threads to random CPUs in hardware disable test
> KVM: selftests: Drop unreachable, dead code from hardware disable test
> KVM: selftests: Add KVM syscall wrapper for pthread_create()
> KVM: selftests: Add KVM syscall wrappers for pthread_{cancel,join}()
> KVM: selftests: Add helper APIs to cancel+join pthreads
> KVM: selftests: Clean up global constants in hardware disable test
> KVM: selftests: Add KVM syscall wrappers for pthread_{g,s}etaffinity_np()
> 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
> MAINTAINERS: Add kvm-x86 tree to KVM x86 entries
> KVM: guest_memfd: Move gmem function declarations to dedicated guest_memfd.h
> MAINTAINERS: Add an entry for KVM's guest_memfd
> MAINTAINERS: Add David H. as a KVM guest_memfd reviewer
> MAINTAINERS: Add myself (Sean) as a reviewer in the main KVM entry
> KVM: selftests: Test one random GP counter in PMU arch events testcase
> KVM: selftests: Create one VM with many vCPUs for each major PMU counters test
>
> Shivank Sharma (1):
> KVM: selftests: Fix typos in x86 and riscv tests
>
> Steffen Eiden (10):
> KVM: s390: Extract gmap tracing to a separate header
> KVM: s390: Prepare include guards for a new location
> KVM: s390: Rename kvm-s390.{c,h} to s390.{c,h}
> KVM: s390: Move kvm_host definitions to kvm_host_s390
> KVM: s390: Move s390 kvm code into a subdirectory
> KVM: s390: Move PGM code definitions to asm/kvm_host.h
> KVM: s390: Prepare gmap for a second KVM implementation
> KVM: s390: gmap: Make storage keys optional
> KVM: s390: gmap: Make CMMA optional
> KVM: s390: gmap: Make prefix handling optional
>
> Tao Cui (3):
> LoongArch: KVM: Advertise already-supported capabilities
> LoongArch: KVM: Reload one-shot TVAL on migration destination
> LoongArch: KVM: Prevent division by zero in periodic timer restore
>
> Tim Wiederhake (3):
> KVM: x86: Replace delivery mode TODO with WARN_ON_ONCE
> KVM: x86: Document that KVM_CREATE_IRQCHIP must precede vCPU creation
> KVM: x86: Document APIC base address constraint for in-kernel irqchip
>
> Vincent Donnefort (1):
> KVM: arm64: Drop %pB on nVHE panic when stage-2 is active
>
> Wang Yan (1):
> KVM: selftests: Fix a spelling error in an xapic_ipi_test comment
>
> Wang Yechao (8):
> RISC-V: KVM: Add the split page cache for ioctl context
> RISC-V: KVM: Split huge pages when dirty logging is enabled
> RISC-V: KVM: Remove redundant TLB flush operations
> RISC-V: KVM: Split huge pages during KVM_CLEAR_DIRTY_LOG
> RISC-V: KVM: Add the eager_page_split module parameter
> RISC-V: KVM: Separate req and fallback_req masks in make_xfence_request
> RISC-V: KVM: Introduce make_xfence_request_nodata for FENCE.I requests
> RISC-V: KVM: Improve dirty log clearing by skipping zero bits in mask
>
> Will Deacon (1):
> KVM: arm64: Avoid mismatched accesses to 'struct kvm_nvhe_init_params'
>
> Yicong Yang (1):
> RISC-V: KVM: Use try_cmpxchg for IMSIC MRIF RMW
>
> Yong-Xuan Wang (2):
> KVM: RISC-V: Clear former VCPU cache on virtualization disable
> KVM: RISC-V: Add CPU PM notifier for non-retention idle states
>
> Yosry Ahmed (26):
> KVM: selftests: Refactor allocating guest stack into a helper
> KVM: selftests: Allocate a dedicated guest page for x86 L2 guest stack
> KVM: selftests: Drop L1-provided stacks for L2 guests on x86
> 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: nVMX: Service local TLB flushes on failed nested VM-Enter
> KVM: selftests: Extend set_sregs test to cover EFER
> KVM: selftests: Use __stringify() instead of custom XSTR() macros
> KVM: selftests: Fix RAX and RFLAGS VMCB offsets when running L2
> KVM: selftests: Rework GPR registers switching for SVM (and fix offsets)
> KVM: selftests: Handle rflags save/restore for SVM in guest_regs
> KVM: selftests: Reuse GPR switching logic for nVMX
> KVM: selftests: Drop HORRIFIC_L2_UCALL_CLOBBER_HACK
> KVM: selftests: Add a blank line before logging assertion failures
> KVM: selftests: Expose PTE masks to guests as part of an MMU
> KVM: selftests: Do not intercept #PF by default in nVMX tests
> KVM: selftests: Add basic stress test for save+restore and #PF handling
> KVM: selftests: Trigger save+restore randomly in the #PF stress test
> KVM: selftests: Support running stress save+restore and #PF test in L2
> KVM: selftests: Trigger L2->L1 exits stress save+restore and #PF test
>
> Yuhang.Chen (1):
> RISC-V: KVM: Add more arch-specific tracepoints
>
> Yuhang.chen (1):
> RISC-V: KVM: Account VM-scoped allocations to the VM cgroup
>
> Zeng Chi (1):
> LoongArch: KVM: Fix PC double advance in kernel MMIO read fast path
>
> Zongmin Zhou (1):
> KVM: riscv: Fix infinite loop in NACL hfence entry allocation
>
> leixiang (2):
> KVM: Remove kvm_debugfs_dir on kvm_init() error paths
> KVM: Remove kvm_debugfs_dir on kvm_init() error paths
>
> Documentation/admin-guide/kernel-parameters.txt | 7 +-
> Documentation/virt/kvm/api.rst | 26 +-
> Documentation/virt/kvm/devices/vcpu.rst | 11 +-
> MAINTAINERS | 22 +-
> arch/arm64/include/asm/cpufeature.h | 1 +
> arch/arm64/include/asm/kvm_arm.h | 27 +-
> arch/arm64/include/asm/kvm_asm.h | 4 +-
> arch/arm64/include/asm/kvm_emulate.h | 107 +-
> arch/arm64/include/asm/kvm_host.h | 14 +-
> arch/arm64/include/asm/kvm_nested.h | 20 +
> arch/arm64/include/asm/kvm_pkvm.h | 8 +-
> arch/arm64/include/asm/vncr_mapping.h | 2 +-
> arch/arm64/include/uapi/asm/kvm.h | 1 +
> arch/arm64/kernel/asm-offsets.c | 1 -
> arch/arm64/kernel/cpu_errata.c | 17 +-
> arch/arm64/kernel/cpufeature.c | 18 +-
> arch/arm64/kernel/image-vars.h | 2 +
> arch/arm64/kernel/pi/idreg-override.c | 10 +
> arch/arm64/kvm/arch_timer.c | 15 +-
> arch/arm64/kvm/arm.c | 26 +-
> arch/arm64/kvm/at.c | 2 -
> arch/arm64/kvm/config.c | 27 +-
> arch/arm64/kvm/emulate-nested.c | 18 +-
> arch/arm64/kvm/handle_exit.c | 40 +-
> arch/arm64/kvm/hyp/exception.c | 34 +-
> arch/arm64/kvm/hyp/include/hyp/switch.h | 42 +-
> arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h | 11 +
> arch/arm64/kvm/hyp/include/nvhe/clock.h | 8 +-
> arch/arm64/kvm/hyp/nvhe/clock.c | 4 +-
> arch/arm64/kvm/hyp/nvhe/hyp-init.S | 11 +-
> arch/arm64/kvm/hyp/nvhe/hyp-main.c | 271 +-
> arch/arm64/kvm/hyp/nvhe/mem_protect.c | 7 +
> arch/arm64/kvm/hyp/nvhe/pkvm.c | 15 +-
> arch/arm64/kvm/hyp/nvhe/sys_regs.c | 5 +-
> arch/arm64/kvm/hyp/nvhe/timer-sr.c | 10 +-
> arch/arm64/kvm/hyp/nvhe/trace.c | 4 +-
> arch/arm64/kvm/hyp/vgic-v3-sr.c | 43 +-
> arch/arm64/kvm/hyp/vhe/switch.c | 62 +-
> arch/arm64/kvm/hyp/vhe/sysreg-sr.c | 21 +-
> arch/arm64/kvm/mmu.c | 9 +-
> arch/arm64/kvm/nested.c | 190 +-
> arch/arm64/kvm/pkvm.c | 34 +-
> arch/arm64/kvm/pmu-emul.c | 54 +-
> arch/arm64/kvm/psci.c | 30 +-
> arch/arm64/kvm/reset.c | 60 +-
> arch/arm64/kvm/sys_regs.c | 152 +-
> arch/arm64/kvm/sys_regs.h | 19 +
> arch/arm64/kvm/vgic-sys-reg-v3.c | 8 +-
> arch/arm64/kvm/vgic/vgic-init.c | 8 +-
> arch/arm64/kvm/vgic/vgic-its.c | 26 +-
> arch/arm64/kvm/vgic/vgic-v2.c | 3 +-
> arch/arm64/kvm/vgic/vgic-v3-nested.c | 2 +-
> arch/arm64/kvm/vgic/vgic-v3.c | 105 +-
> arch/arm64/kvm/vgic/vgic-v5.c | 5 +-
> arch/arm64/kvm/vgic/vgic.c | 7 +-
> arch/arm64/kvm/vgic/vgic.h | 19 +-
> arch/arm64/tools/cpucaps | 3 +
> arch/arm64/tools/gen-sysreg.awk | 8 +-
> arch/arm64/tools/sysreg | 44 +-
> arch/loongarch/kvm/exit.c | 19 +-
> arch/loongarch/kvm/intc/dmsintc.c | 18 +-
> arch/loongarch/kvm/intc/eiointc.c | 32 +-
> arch/loongarch/kvm/intc/ipi.c | 77 +-
> arch/loongarch/kvm/intc/pch_pic.c | 12 +-
> arch/loongarch/kvm/timer.c | 14 +
> arch/loongarch/kvm/vcpu.c | 7 +-
> arch/loongarch/kvm/vm.c | 4 +
> arch/powerpc/kvm/book3s_pr.c | 11 +-
> arch/riscv/include/asm/csr.h | 1 +
> arch/riscv/include/asm/kvm_aia.h | 3 +
> arch/riscv/include/asm/kvm_gstage.h | 9 +-
> arch/riscv/include/asm/kvm_host.h | 10 +
> arch/riscv/include/asm/kvm_vcpu_insn.h | 4 +-
> arch/riscv/include/asm/kvm_vcpu_sbi.h | 4 +
> arch/riscv/include/asm/kvm_vcpu_vector.h | 24 +
> arch/riscv/include/asm/processor.h | 8 +
> arch/riscv/include/asm/simd.h | 16 +-
> arch/riscv/include/asm/vector.h | 5 +
> arch/riscv/include/uapi/asm/kvm.h | 13 +
> arch/riscv/kernel/kernel_mode_vector.c | 88 +-
> arch/riscv/kvm/aia.c | 42 +
> arch/riscv/kvm/aia_aplic.c | 3 +-
> arch/riscv/kvm/aia_device.c | 6 +
> arch/riscv/kvm/aia_imsic.c | 18 +-
> arch/riscv/kvm/gstage.c | 82 +-
> arch/riscv/kvm/isa.c | 2 +
> arch/riscv/kvm/main.c | 114 +-
> arch/riscv/kvm/mmu.c | 108 +-
> arch/riscv/kvm/nacl.c | 2 +-
> arch/riscv/kvm/tlb.c | 117 +-
> arch/riscv/kvm/trace.h | 81 +-
> arch/riscv/kvm/vcpu.c | 34 +
> arch/riscv/kvm/vcpu_config.c | 2 +
> arch/riscv/kvm/vcpu_exit.c | 20 +-
> arch/riscv/kvm/vcpu_insn.c | 17 +-
> arch/riscv/kvm/vcpu_onereg.c | 68 +-
> arch/riscv/kvm/vcpu_pmu.c | 16 +-
> arch/riscv/kvm/vcpu_sbi.c | 30 +
> arch/riscv/kvm/vcpu_sbi_fwft.c | 207 +-
> arch/riscv/kvm/vcpu_sbi_v01.c | 52 +-
> arch/riscv/kvm/vcpu_vector.c | 26 +-
> arch/s390/include/asm/kvm_host.h | 723 +---
> arch/s390/include/asm/kvm_host_s390.h | 729 ++++
> arch/s390/include/asm/kvm_host_s390_types.h | 349 ++
> arch/s390/include/asm/kvm_host_types.h | 347 +-
> arch/s390/include/asm/nmi.h | 3 +
> arch/s390/kernel/nmi.c | 5 +-
> arch/s390/kvm/Makefile | 11 +-
> arch/s390/kvm/gmap/Makefile | 5 +
> arch/s390/kvm/{ => gmap}/dat.c | 17 +-
> arch/s390/kvm/{ => gmap}/dat.h | 21 +-
> arch/s390/kvm/{ => gmap}/faultin.c | 3 +-
> arch/s390/kvm/{ => gmap}/faultin.h | 6 +-
> arch/s390/kvm/{ => gmap}/gmap.c | 19 +-
> arch/s390/kvm/{ => gmap}/gmap.h | 25 +-
> arch/s390/kvm/gmap/kvm_mmu.c | 133 +
> arch/s390/kvm/gmap/kvm_mmu.h | 18 +
> arch/s390/kvm/gmap/trace_gmap.h | 47 +
> arch/s390/kvm/s390/Makefile | 14 +
> arch/s390/kvm/{ => s390}/diag.c | 21 +-
> arch/s390/kvm/{ => s390}/gaccess.c | 2 +-
> arch/s390/kvm/{ => s390}/gaccess.h | 2 +-
> arch/s390/kvm/{ => s390}/guestdbg.c | 11 +-
> arch/s390/kvm/{ => s390}/intercept.c | 2 +-
> arch/s390/kvm/{ => s390}/interrupt.c | 109 +-
> arch/s390/kvm/{ => s390}/pci.c | 2 +-
> arch/s390/kvm/{ => s390}/pci.h | 0
> arch/s390/kvm/{ => s390}/priv.c | 2 +-
> arch/s390/kvm/{ => s390}/pv.c | 6 +-
> arch/s390/kvm/{kvm-s390.c => s390/s390.c} | 159 +-
> arch/s390/kvm/{kvm-s390.h => s390/s390.h} | 10 +-
> arch/s390/kvm/{ => s390}/sigp.c | 2 +-
> arch/s390/kvm/{ => s390}/trace-s390.h | 0
> arch/s390/kvm/{ => s390}/trace.h | 40 +-
> arch/s390/kvm/{ => s390}/vsie.c | 22 +-
> arch/s390/tools/gen_facilities.c | 14 +-
> 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 | 17 +-
> arch/x86/include/asm/kvm_host.h | 880 +----
> arch/x86/kvm/Kconfig | 3 +-
> arch/x86/kvm/Makefile | 4 +-
> arch/x86/kvm/cpuid.c | 39 +-
> arch/x86/kvm/emulate.c | 49 +-
> arch/x86/kvm/fpu.h | 26 +
> arch/x86/kvm/hyperv.c | 102 +-
> arch/x86/kvm/hyperv.h | 120 +-
> arch/x86/kvm/ioapic.c | 1 +
> arch/x86/kvm/ioapic.h | 12 +
> arch/x86/kvm/irq.c | 7 +
> arch/x86/kvm/irq.h | 26 +
> arch/x86/kvm/lapic.c | 13 +-
> arch/x86/kvm/lapic.h | 41 +
> arch/x86/kvm/mmu.h | 126 +-
> arch/x86/kvm/mmu/mmu.c | 675 ++--
> arch/x86/kvm/mmu/mmu_internal.h | 66 -
> arch/x86/kvm/mmu/paging_tmpl.h | 90 +-
> arch/x86/kvm/mmu/spte.c | 4 +-
> arch/x86/kvm/mmu/spte.h | 69 +-
> arch/x86/kvm/mmu/tdp_iter.h | 7 +
> arch/x86/kvm/mmu/tdp_mmu.c | 23 +-
> arch/x86/kvm/msrs.c | 2728 ++++++++++++++
> arch/x86/kvm/msrs.h | 155 +
> arch/x86/kvm/mtrr.c | 2 +-
> arch/x86/kvm/pmu.c | 24 +-
> arch/x86/kvm/pmu.h | 4 +-
> arch/x86/kvm/regs.c | 875 +++++
> arch/x86/kvm/regs.h | 98 +
> arch/x86/kvm/smm.c | 4 +
> arch/x86/kvm/svm/avic.c | 96 +-
> arch/x86/kvm/svm/nested.c | 35 +-
> arch/x86/kvm/svm/sev.c | 242 +-
> arch/x86/kvm/svm/svm.c | 116 +-
> arch/x86/kvm/svm/svm.h | 24 +-
> arch/x86/kvm/tss.h | 14 +
> arch/x86/kvm/vmx/main.c | 24 +-
> arch/x86/kvm/vmx/nested.c | 105 +-
> 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 | 219 +-
> arch/x86/kvm/vmx/x86_ops.h | 4 +-
> arch/x86/kvm/x86.c | 3895 +-------------------
> arch/x86/kvm/x86.h | 472 ++-
> arch/x86/kvm/xen.c | 73 +-
> arch/x86/kvm/xen.h | 13 -
> drivers/s390/crypto/vfio_ap_ops.c | 203 +-
> include/kvm/arm_arch_timer.h | 34 +-
> include/kvm/arm_pmu.h | 4 +
> include/kvm/arm_psci.h | 27 +
> include/kvm/arm_vgic.h | 4 +-
> include/linux/kvm_host.h | 38 +-
> include/uapi/linux/kvm.h | 1 +
> tools/testing/selftests/kvm/Makefile.kvm | 19 +-
> tools/testing/selftests/kvm/arch_timer.c | 20 +-
> .../selftests/kvm/arm64/arch_timer_edge_cases.c | 2 +-
> .../testing/selftests/kvm/arm64/debug-exceptions.c | 41 +
> tools/testing/selftests/kvm/arm64/get-reg-list.c | 3 +
> .../selftests/kvm/arm64/stage2_block_transitions.c | 226 ++
> tools/testing/selftests/kvm/arm64/vgic_irq.c | 14 +-
> .../testing/selftests/kvm/arm64/vgic_lpi_stress.c | 8 +-
> tools/testing/selftests/kvm/demand_paging_test.c | 2 +-
> tools/testing/selftests/kvm/dirty_log_perf_test.c | 4 +-
> tools/testing/selftests/kvm/dirty_log_test.c | 15 +-
> .../testing/selftests/kvm/hardware_disable_test.c | 109 +-
> tools/testing/selftests/kvm/include/kvm_syscalls.h | 55 +
> tools/testing/selftests/kvm/include/kvm_util.h | 21 +
> .../selftests/kvm/include/loongarch/processor.h | 18 +
> tools/testing/selftests/kvm/include/proc_util.h | 11 +
> tools/testing/selftests/kvm/include/test_util.h | 26 +-
> tools/testing/selftests/kvm/include/x86/evmcs.h | 46 +-
> .../selftests/kvm/include/x86/kvm_util_arch.h | 4 +-
> tools/testing/selftests/kvm/include/x86/pmu.h | 6 +
> .../testing/selftests/kvm/include/x86/processor.h | 64 +-
> tools/testing/selftests/kvm/include/x86/svm_util.h | 5 +-
> tools/testing/selftests/kvm/include/x86/vmx.h | 73 +-
> tools/testing/selftests/kvm/irq_test.c | 362 ++
> tools/testing/selftests/kvm/irqfd_test.c | 4 +-
> tools/testing/selftests/kvm/kvm_page_table_test.c | 6 +-
> tools/testing/selftests/kvm/lib/assert.c | 10 +-
> tools/testing/selftests/kvm/lib/kvm_util.c | 52 +-
> .../selftests/kvm/lib/loongarch/processor.c | 11 +-
> tools/testing/selftests/kvm/lib/memstress.c | 12 +-
> tools/testing/selftests/kvm/lib/proc_util.c | 54 +
> tools/testing/selftests/kvm/lib/test_util.c | 41 +-
> tools/testing/selftests/kvm/lib/userfaultfd_util.c | 7 +-
> tools/testing/selftests/kvm/lib/x86/memstress.c | 19 +-
> tools/testing/selftests/kvm/lib/x86/processor.c | 59 +-
> tools/testing/selftests/kvm/lib/x86/svm.c | 68 +-
> tools/testing/selftests/kvm/lib/x86/ucall.c | 32 +-
> tools/testing/selftests/kvm/lib/x86/vmx.c | 8 +-
> tools/testing/selftests/kvm/loongarch/fpu_test.c | 137 +
> tools/testing/selftests/kvm/memslot_perf_test.c | 4 +-
> tools/testing/selftests/kvm/mmu_stress_test.c | 19 +-
> .../testing/selftests/kvm/pre_fault_memory_test.c | 4 +-
> tools/testing/selftests/kvm/riscv/get-reg-list.c | 90 +
> tools/testing/selftests/kvm/riscv/sbi_pmu_test.c | 4 +-
> tools/testing/selftests/kvm/rseq_test.c | 16 +-
> tools/testing/selftests/kvm/s390/memop.c | 4 +-
> .../testing/selftests/kvm/set_memory_region_test.c | 6 +-
> tools/testing/selftests/kvm/steal_time.c | 39 +-
> tools/testing/selftests/kvm/vm_types_test.c | 48 +
> tools/testing/selftests/kvm/x86/aperfmperf_test.c | 9 +-
> .../selftests/kvm/x86/evmcs_smm_controls_test.c | 10 +-
> .../testing/selftests/kvm/x86/fix_hypercall_test.c | 1 -
> tools/testing/selftests/kvm/x86/hyperv_clock.c | 4 +-
> tools/testing/selftests/kvm/x86/hyperv_evmcs.c | 8 +-
> tools/testing/selftests/kvm/x86/hyperv_ipi.c | 32 +-
> tools/testing/selftests/kvm/x86/hyperv_svm_test.c | 6 +-
> tools/testing/selftests/kvm/x86/hyperv_tlb_flush.c | 30 +-
> tools/testing/selftests/kvm/x86/kvm_buslock_test.c | 9 +-
> .../selftests/kvm/x86/nested_close_kvm_test.c | 12 +-
> .../selftests/kvm/x86/nested_dirty_log_test.c | 8 +-
> .../selftests/kvm/x86/nested_emulation_test.c | 4 +-
> .../selftests/kvm/x86/nested_exceptions_test.c | 9 +-
> .../selftests/kvm/x86/nested_invalid_cr3_test.c | 10 +-
> .../selftests/kvm/x86/nested_tdp_fault_test.c | 9 +-
> .../selftests/kvm/x86/nested_tsc_adjust_test.c | 10 +-
> .../selftests/kvm/x86/nested_tsc_scaling_test.c | 10 +-
> .../selftests/kvm/x86/nested_vmsave_vmload_test.c | 6 +-
> .../testing/selftests/kvm/x86/pmu_counters_test.c | 231 +-
> .../selftests/kvm/x86/pmu_event_filter_test.c | 4 +-
> .../kvm/x86/private_mem_conversions_test.c | 4 +-
> .../selftests/kvm/x86/private_mem_kvm_exits_test.c | 7 +-
> .../selftests/kvm/x86/recalc_apic_map_test.c | 5 +-
> .../kvm/x86/save_restore_pf_stress_test.c | 288 ++
> tools/testing/selftests/kvm/x86/set_sregs_test.c | 81 +-
> tools/testing/selftests/kvm/x86/sev_dbg_test.c | 2 +-
> tools/testing/selftests/kvm/x86/sev_init2_tests.c | 4 -
> .../testing/selftests/kvm/x86/sev_migrate_tests.c | 4 +-
> tools/testing/selftests/kvm/x86/smm_test.c | 13 +-
> tools/testing/selftests/kvm/x86/state_test.c | 11 +-
> tools/testing/selftests/kvm/x86/svm_int_ctl_test.c | 5 +-
> .../selftests/kvm/x86/svm_lbr_nested_state.c | 6 +-
> .../selftests/kvm/x86/svm_nested_clear_efer_svme.c | 7 +-
> .../selftests/kvm/x86/svm_nested_pat_test.c | 8 +-
> .../selftests/kvm/x86/svm_nested_shutdown_test.c | 5 +-
> .../kvm/x86/svm_nested_soft_inject_test.c | 6 +-
> .../selftests/kvm/x86/svm_nested_vmcb12_gpa.c | 13 +-
> .../selftests/kvm/x86/svm_pmu_host_guest_test.c | 215 ++
> tools/testing/selftests/kvm/x86/svm_vmcall_test.c | 5 +-
> tools/testing/selftests/kvm/x86/sync_regs_test.c | 5 +-
> .../selftests/kvm/x86/triple_fault_event_test.c | 9 +-
> tools/testing/selftests/kvm/x86/tsc_scaling_sync.c | 4 +-
> .../selftests/kvm/x86/vmx_apic_access_test.c | 5 +-
> .../selftests/kvm/x86/vmx_apicv_updates_test.c | 4 +-
> .../kvm/x86/vmx_invalid_nested_guest_state.c | 130 +-
> .../selftests/kvm/x86/vmx_nested_la57_state_test.c | 5 +-
> .../selftests/kvm/x86/vmx_preemption_timer_test.c | 5 +-
> tools/testing/selftests/kvm/x86/xapic_ipi_test.c | 33 +-
> tools/testing/selftests/kvm/x86/xen_shinfo_test.c | 10 +-
> virt/kvm/Kconfig | 6 +-
> virt/kvm/guest_memfd.c | 73 +-
> virt/kvm/guest_memfd.h | 34 +
> virt/kvm/kvm_main.c | 22 +-
> virt/kvm/kvm_mm.h | 27 -
> 296 files changed, 12847 insertions(+), 8611 deletions(-)
> create mode 100644 arch/s390/include/asm/kvm_host_s390.h
> create mode 100644 arch/s390/include/asm/kvm_host_s390_types.h
> create mode 100644 arch/s390/kvm/gmap/Makefile
> rename arch/s390/kvm/{ => gmap}/dat.c (99%)
> rename arch/s390/kvm/{ => gmap}/dat.h (98%)
> rename arch/s390/kvm/{ => gmap}/faultin.c (98%)
> rename arch/s390/kvm/{ => gmap}/faultin.h (96%)
> rename arch/s390/kvm/{ => gmap}/gmap.c (99%)
> rename arch/s390/kvm/{ => gmap}/gmap.h (96%)
> create mode 100644 arch/s390/kvm/gmap/kvm_mmu.c
> create mode 100644 arch/s390/kvm/gmap/kvm_mmu.h
> create mode 100644 arch/s390/kvm/gmap/trace_gmap.h
> create mode 100644 arch/s390/kvm/s390/Makefile
> rename arch/s390/kvm/{ => s390}/diag.c (96%)
> rename arch/s390/kvm/{ => s390}/gaccess.c (99%)
> rename arch/s390/kvm/{ => s390}/gaccess.h (99%)
> rename arch/s390/kvm/{ => s390}/guestdbg.c (98%)
> rename arch/s390/kvm/{ => s390}/intercept.c (99%)
> rename arch/s390/kvm/{ => s390}/interrupt.c (98%)
> rename arch/s390/kvm/{ => s390}/pci.c (99%)
> rename arch/s390/kvm/{ => s390}/pci.h (100%)
> rename arch/s390/kvm/{ => s390}/priv.c (99%)
> rename arch/s390/kvm/{ => s390}/pv.c (99%)
> rename arch/s390/kvm/{kvm-s390.c => s390/s390.c} (97%)
> rename arch/s390/kvm/{kvm-s390.h => s390/s390.h} (98%)
> rename arch/s390/kvm/{ => s390}/sigp.c (99%)
> rename arch/s390/kvm/{ => s390}/trace-s390.h (100%)
> rename arch/s390/kvm/{ => s390}/trace.h (95%)
> rename arch/s390/kvm/{ => s390}/vsie.c (98%)
> create mode 100644 arch/x86/include/asm/kvm-x86-nested-ops.h
> create mode 100644 arch/x86/kvm/msrs.c
> create mode 100644 arch/x86/kvm/msrs.h
> create mode 100644 arch/x86/kvm/regs.c
> create mode 100644 tools/testing/selftests/kvm/arm64/stage2_block_transitions.c
> create mode 100644 tools/testing/selftests/kvm/include/proc_util.h
> create mode 100644 tools/testing/selftests/kvm/irq_test.c
> create mode 100644 tools/testing/selftests/kvm/lib/proc_util.c
> create mode 100644 tools/testing/selftests/kvm/loongarch/fpu_test.c
> create mode 100644 tools/testing/selftests/kvm/vm_types_test.c
> create mode 100644 tools/testing/selftests/kvm/x86/save_restore_pf_stress_test.c
> create mode 100644 tools/testing/selftests/kvm/x86/svm_pmu_host_guest_test.c
> create mode 100644 virt/kvm/guest_memfd.h
>
>
> diff --cc arch/arm64/tools/cpucaps
> index 0ee42b0cc8d3,f88d7898489f..000000000000
> --- a/arch/arm64/tools/cpucaps
> +++ b/arch/arm64/tools/cpucaps
> @@@ -52,6 -51,9 +52,8 @@@ HAS_LS64_
> HAS_LSUI
> HAS_MOPS
> HAS_NESTED_VIRT
> + HAS_NV2P1
> + HAS_NV3
> -HAS_BBML2_NOABORT
> HAS_PAN
> HAS_PMUV3
> HAS_S1PIE
> @@@ -121,7 -123,7 +123,8 @@@ WORKAROUND_CAVIUM_TX2_219_TV
> WORKAROUND_CLEAN_CACHE
> WORKAROUND_DEVICE_LOAD_ACQUIRE
> WORKAROUND_DISABLE_CNP
> + WORKAROUND_GICv3_BROKEN_SEIS
> +WORKAROUND_NVIDIA_OLYMPUS_1027
> WORKAROUND_PMUV3_IMPDEF_TRAPS
> WORKAROUND_QCOM_FALKOR_E1003
> WORKAROUND_QCOM_ORYON_CNTVOFF
> diff --cc arch/riscv/kvm/vcpu_vector.c
> index 3c3183b39ae2,bf5c94d8786b..000000000000
> --- a/arch/riscv/kvm/vcpu_vector.c
> +++ b/arch/riscv/kvm/vcpu_vector.c
> @@@ -56,9 -56,8 +56,8 @@@ void kvm_riscv_vcpu_guest_vector_restor
> unsigned long *isa)
> {
> if ((cntx->sstatus & SR_VS) != SR_VS_OFF) {
> - if (riscv_isa_extension_available(isa, v))
> + if (riscv_isa_extension_available(isa, V))
> - __kvm_riscv_vector_restore(cntx);
> - kvm_riscv_vcpu_vector_clean(cntx);
> + riscv_v_flags_set(riscv_v_flags() | RISCV_V_VCPU_NEED_RESTORE);
> }
> }
>
> diff --cc arch/x86/kvm/x86.c
> index 69469bbdc84a,4b3681796c75..000000000000
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> diff --cc include/uapi/linux/kvm.h
> index 70e36e6a0ad4,9fc8dfdfd65f..000000000000
> --- a/include/uapi/linux/kvm.h
> +++ b/include/uapi/linux/kvm.h
> @@@ -997,7 -997,7 +997,8 @@@ struct kvm_enable_cap
> #define KVM_CAP_S390_KEYOP 247
> #define KVM_CAP_S390_VSIE_ESAMODE 248
> #define KVM_CAP_S390_HPAGE_2G 249
> -#define KVM_CAP_ARM_PMU_V3_STRICT 250
> +#define KVM_CAP_PPC_COMPAT_CAPS 250
> ++#define KVM_CAP_ARM_PMU_V3_STRICT 251
>
> struct kvm_irq_routing_irqchip {
> __u32 irqchip;
> diff --git a/arch/x86/kvm/msrs.c b/arch/x86/kvm/msrs.c
> index 66fa7140d65d..82e781c45dca 100644
> --- a/arch/x86/kvm/msrs.c
> +++ b/arch/x86/kvm/msrs.c
> @@ -640,7 +640,7 @@ static int set_efer(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
> if ((efer ^ old_efer) & KVM_MMU_EFER_ROLE_BITS)
> kvm_mmu_reset_context(vcpu);
>
> - if (!static_cpu_has(X86_FEATURE_XSAVES) &&
> + if (!cpu_feature_enabled(X86_FEATURE_XSAVES) &&
> (efer & EFER_SVME))
> kvm_hv_xsaves_xsavec_maybe_warn(vcpu);
>
>
>
prev parent reply other threads:[~2026-09-10 7:14 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-25 15:52 [GIT PULL] KVM changes for Linux 7.3 Paolo Bonzini
2026-08-25 19:50 ` pr-tracker-bot
2026-09-10 7:14 ` Madhavan Srinivasan [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=85778327-e87d-4b3b-82c7-efab099d1c75@linux.ibm.com \
--to=maddy@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.