mirror of
https://github.com/torvalds/linux.git
synced 2026-10-28 17:55:02 +01:00
- Invalidate the ITS translation cache when the guest changes the
base address of the ITS tables (Fuad Tabba)
- Skip saving ITS devices with device IDs that are out-of-bounds
rather than failing the entire ITS save ioctl (Fuad Tabba)
- Close race between VM teardown and invalidations of nested MMUs
when handling MMU operations that are allowed to block
(Lorenzo Stoakes)
- Various fixes for the handling of the host's untrusted SVE
configuration in pKVM (Fuad Tabba)
- Make sure that empty SMCCC ranges based at 0 are rejected by the
kvm_smccc_set_filter() (Karl Mehltretter)
- Revoke the host mapping for pKVM's private stack pages, along
with a new sanity check that all mappings in the hyp's private
VA range have been correctly marked as hyp-owned (Fuad Tabba)
- Lifetime fixes for the array of shadow stage-2 MMUs, ensuring that
concurrent vCPU initialization cannot relocate in-use MMUs. Defer
the freeing of shadow stage-2 MMUs to the point that no other users
(e.g. MMU notifier) could reference them (Marc Zyngier)
- Drop useless WARN when rejecting an unsupported ioctl for pKVM
(Fuad Tabba)
- Fix the steal_time selftest to install correctly-sized mappings for
non-4K hosts (Sebastian Ott)
- Correct mapping of fine-grained trap for GCSPOPX instruction
(Mark Brown)
- Fix KVM_BUG_ON() due to missing handling of DBGBXVR<n> from 32-bit
guests (Karl Mehltretter)
RISC-V:
- Synchronize hrtimer during VCPU teardown.
- Fix the conversion between vsip and hvip values.
- Serialize IMSIC attributes with vCPU migration.
- Release unused page after MMU invalidation.
- Propagate interrupted G-stage faults to KVM user-space as EINTR.
- Fix nested acceleration hfence entry update order.
- Fix sdata leak and stale snapshot_addr in snapshot_set_shmem.
- Preserve firmware counter value across PMU counter stop/start.
- Report PMU snapshot write failure to the guest.
- Fix perf-backed counter accounting across PMU stop and read.
- Correctly propagate error of a hart status SBI call.
s390:
- Ensure that accesses through kvm_arch_set_irq_inatomic mark as dirty
the pages that contain indicator and summary bits.
- Fix compile warning for kvm_s390_update_cmma_dirty().
- Fix incorrect propagation of ENOENT from _gaccess_shadow_fault() to
userspace.
- Move s390_kvm_mmu_commit_memory_region() into
s390_kvm_mmu_prepare_memory_region() so that it can fail instead of WARN.
- Add missing srcu in kvm_s390_set_irq_state().
- Fix potential races in storage functions.
- Fix race in _destroy_pages_crste().
- Fix issues in the handling of KVM interrupt and page resources, when a
queue that is assigned to a mediated device (mdev) is removed from the
host's AP configuration.
- Fix loop condition in uv_find_secrets.
- Prevent potential out-of-bounds read.
x86:
- Fix a brown paper bag bug where KVM would incorrectly treat Intel PMU MSRs
as valid on AMD.
- Fix a regression in the hardware disable selftest where it checked the wrong
macro when detecting glibc support (breaks at least musl).
- Never clear KVM_REQ_VM_DEAD so that dead VMs stay dead, which is especially
important for KVM_BUG_ON() flows, which often guard more dangerous bugs.
- Re-pend GET_NESTED_STATE_PAGES if getting the pages fails, to fix a bug
where KVM would let userspace run a broken setup with stale vmcs12 pages.
- Fix a class of bugs where KVM would fail to fill kvm_run exit fields if
getting nested pages failed.
- Treat reserved entries in the memory attributes xarray as "no attributes",
to fix false positives when checking for mixed attributes.
- Fix memcg accounting for the memory attributes xarray (the xarray library
subtly requires the xarray to be configured for accounting upfront; the gfp
flags taken at runtime are used only rarely).
- Don't pre-reserve xarray entries when storing empty attributes, as storing
NULL must not require memory allocation (KVM and other subsystems heavily
rely on this behavior).
- Fix a memory leak and a cache maintenance issue related to doing intra-host
migration on an SEV guest.
-----BEGIN PGP SIGNATURE-----
iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmq3Ta0UHHBib256aW5p
QHJlZGhhdC5jb20ACgkQv/vSX3jHroMcygf/Z8GovgUACbWs/PSgVxZr5++MsbnM
/N+vUP0VhsBxWCt191fBmKSBMNyTL734CKe0fkmisIAIPxf63uA3lttfMshNXKct
VJ3TQkbA7qiSEGf2Um1dp4k6egqDDbTS1a4NF7CM7AEL4Wm3YDfqv2h4rZicEBsd
Spy4yV8sKoiEHMnduhF2m5r0cWkrj194e2dolJy0p1WiNeEykf/nMTmNq5JWusBh
TDDzZf1p2BianOmQ6+fkzAfWDSIdv0OPmoH7iqvQ/xhvm4dLWq2oeOz5Q2/uWAp0
BqU4Z5zBrGRUWyXM0cDZEqBfmNH4v7oR9PfLgvD4qpMoqONuMj1+mIO68A==
=XtLD
-----END PGP SIGNATURE-----
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull kvm fixes from Paolo Bonzini:
"Arm:
- Invalidate the ITS translation cache when the guest changes the
base address of the ITS tables (Fuad Tabba)
- Skip saving ITS devices with device IDs that are out-of-bounds
rather than failing the entire ITS save ioctl (Fuad Tabba)
- Close race between VM teardown and invalidations of nested MMUs
when handling MMU operations that are allowed to block (Lorenzo
Stoakes)
- Various fixes for the handling of the host's untrusted SVE
configuration in pKVM (Fuad Tabba)
- Make sure that empty SMCCC ranges based at 0 are rejected by the
kvm_smccc_set_filter() (Karl Mehltretter)
- Revoke the host mapping for pKVM's private stack pages, along with
a new sanity check that all mappings in the hyp's private VA range
have been correctly marked as hyp-owned (Fuad Tabba)
- Lifetime fixes for the array of shadow stage-2 MMUs, ensuring that
concurrent vCPU initialization cannot relocate in-use MMUs. Defer
the freeing of shadow stage-2 MMUs to the point that no other users
(e.g. MMU notifier) could reference them (Marc Zyngier)
- Drop useless WARN when rejecting an unsupported ioctl for pKVM
(Fuad Tabba)
- Fix the steal_time selftest to install correctly-sized mappings for
non-4K hosts (Sebastian Ott)
- Correct mapping of fine-grained trap for GCSPOPX instruction (Mark
Brown)
- Fix KVM_BUG_ON() due to missing handling of DBGBXVR<n> from 32-bit
guests (Karl Mehltretter)
RISC-V:
- Synchronize hrtimer during VCPU teardown
- Fix the conversion between vsip and hvip values
- Serialize IMSIC attributes with vCPU migration
- Release unused page after MMU invalidation
- Propagate interrupted G-stage faults to KVM user-space as EINTR
- Fix nested acceleration hfence entry update order
- Fix sdata leak and stale snapshot_addr in snapshot_set_shmem
- Preserve firmware counter value across PMU counter stop/start
- Report PMU snapshot write failure to the guest
- Fix perf-backed counter accounting across PMU stop and read
- Correctly propagate error of a hart status SBI call
s390:
- Ensure that accesses through kvm_arch_set_irq_inatomic mark as
dirty the pages that contain indicator and summary bits
- Fix compile warning for kvm_s390_update_cmma_dirty()
- Fix incorrect propagation of ENOENT from _gaccess_shadow_fault() to
userspace
- Move s390_kvm_mmu_commit_memory_region() into
s390_kvm_mmu_prepare_memory_region() so that it can fail instead of
WARN
- Add missing srcu in kvm_s390_set_irq_state()
- Fix potential races in storage functions
- Fix race in _destroy_pages_crste()
- Fix issues in the handling of KVM interrupt and page resources,
when a queue that is assigned to a mediated device (mdev) is
removed from the host's AP configuration
- Fix loop condition in uv_find_secrets
- Prevent potential out-of-bounds read
x86:
- Fix a brown paper bag bug where KVM would incorrectly treat Intel
PMU MSRs as valid on AMD
- Fix a regression in the hardware disable selftest where it checked
the wrong macro when detecting glibc support (breaks at least musl)
- Never clear KVM_REQ_VM_DEAD so that dead VMs stay dead, which is
especially important for KVM_BUG_ON() flows, which often guard more
dangerous bugs
- Re-pend GET_NESTED_STATE_PAGES if getting the pages fails, to fix a
bug where KVM would let userspace run a broken setup with stale
vmcs12 pages
- Fix a class of bugs where KVM would fail to fill kvm_run exit
fields if getting nested pages failed
- Treat reserved entries in the memory attributes xarray as "no
attributes", to fix false positives when checking for mixed
attributes
- Fix memcg accounting for the memory attributes xarray (the xarray
library subtly requires the xarray to be configured for accounting
upfront; the gfp flags taken at runtime are used only rarely)
- Don't pre-reserve xarray entries when storing empty attributes, as
storing NULL must not require memory allocation (KVM and other
subsystems heavily rely on this behavior)
- Fix a memory leak and a cache maintenance issue related to doing
intra-host migration on an SEV guest"
* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (54 commits)
KVM: SEV: Do cache maintenance on the source VM during intra-host migration
KVM: SEV: Free have_run_cpus during VM destruction even if VM is no longer SEV
KVM: Don't pre-reserve xarray entries when storing empty/NULL attributes
KVM: Ensure memory attributes xarray nodes are accounted to the caller's memcg
KVM: Don't treat reserved xarray entries as having memory attributes
KVM: x86: Fill kvm_run exit fields in common get_nested_state_pages() error paths
KVM: x86: Re-pend GET_NESTED_STATE_PAGES if getting said pages fails
KVM: arm64: Fix AArch32 DBGBXVR<n> handling
KVM: arm64: Fix FGT mapping for HFGITR_EL2.nGCSEPP
KVM: selftests: fix steal_time for arm64 with host page size > 4K
KVM: arm64: Don't WARN on an unknown VM ioctl in protected mode
KVM: arm64: nv: Delay freeing of shadow S2 structures until VM destruction
KVM: arm64: nv: Fix life cycle of the nested_mmus array
KVM: arm64: Check every private mapping is hyp-owned at pKVM init
KVM: arm64: Move the private VA allocation cursor to __io_map_next
KVM: arm64: Match hyp text by physical address in fix_host_ownership()
KVM: arm64: Transfer the hyp stack pages out of the host stage-2
KVM: arm64: selftests: Test empty SMCCC filter range at base 0
KVM: arm64: Return -EINVAL for an empty SMCCC filter range at base 0
KVM: arm64: Derive GUEST_HAS_SVE from the SVE feature bit at EL2
...
|
||
|---|---|---|
| .. | ||
| stacktrace | ||
| vdso | ||
| xen | ||
| acenv.h | ||
| acpi.h | ||
| alternative-macros.h | ||
| alternative.h | ||
| apple_m1_pmu.h | ||
| arch_gicv3.h | ||
| arch_timer.h | ||
| archrandom.h | ||
| arm_dsu_pmu.h | ||
| arm_pmuv3.h | ||
| arm-cci.h | ||
| asm_pointer_auth.h | ||
| asm-bug.h | ||
| asm-extable.h | ||
| asm-offsets.h | ||
| asm-prototypes.h | ||
| asm-uaccess.h | ||
| assembler.h | ||
| atomic_ll_sc.h | ||
| atomic_lse.h | ||
| atomic.h | ||
| barrier.h | ||
| bitops.h | ||
| bitrev.h | ||
| boot.h | ||
| brk-imm.h | ||
| bug.h | ||
| cache.h | ||
| cacheflush.h | ||
| cfi.h | ||
| checksum.h | ||
| clocksource.h | ||
| cmpxchg.h | ||
| compat.h | ||
| compiler.h | ||
| cpu_ops.h | ||
| cpu.h | ||
| cpucaps.h | ||
| cpufeature.h | ||
| cpuidle.h | ||
| cputype.h | ||
| crash_reserve.h | ||
| current.h | ||
| daifflags.h | ||
| dcc.h | ||
| debug-monitors.h | ||
| dmi.h | ||
| efi.h | ||
| el2_setup.h | ||
| elf.h | ||
| entry-common.h | ||
| esr.h | ||
| exception.h | ||
| exec.h | ||
| extable.h | ||
| fixmap.h | ||
| fpsimd.h | ||
| fpu.h | ||
| ftrace.h | ||
| futex.h | ||
| gcs.h | ||
| gpr-num.h | ||
| hardirq.h | ||
| hugetlb.h | ||
| hw_breakpoint.h | ||
| hwcap.h | ||
| hyp_image.h | ||
| hypervisor.h | ||
| image.h | ||
| insn-def.h | ||
| insn.h | ||
| io.h | ||
| irq_work.h | ||
| irq.h | ||
| irqflags.h | ||
| jump_label.h | ||
| kasan.h | ||
| Kbuild | ||
| kernel-pgtable.h | ||
| kexec.h | ||
| kfence.h | ||
| kgdb.h | ||
| kprobes.h | ||
| kvm_arm.h | ||
| kvm_asm.h | ||
| kvm_define_hypevents.h | ||
| kvm_emulate.h | ||
| kvm_host.h | ||
| kvm_hyp.h | ||
| kvm_hypevents.h | ||
| kvm_hyptrace.h | ||
| kvm_mmu.h | ||
| kvm_mte.h | ||
| kvm_nested.h | ||
| kvm_pgtable.h | ||
| kvm_pkvm.h | ||
| kvm_ptrauth.h | ||
| kvm_types.h | ||
| linkage.h | ||
| lse.h | ||
| lsui.h | ||
| mem_encrypt.h | ||
| memory.h | ||
| mman.h | ||
| mmu_context.h | ||
| mmu.h | ||
| module.h | ||
| module.lds.h | ||
| mpam.h | ||
| mshyperv.h | ||
| mte-def.h | ||
| mte-kasan.h | ||
| mte.h | ||
| neon-intrinsics.h | ||
| neon.h | ||
| nmi.h | ||
| numa.h | ||
| page-def.h | ||
| page.h | ||
| paravirt.h | ||
| pci.h | ||
| percpu.h | ||
| perf_event.h | ||
| pgalloc.h | ||
| pgtable-hwdef.h | ||
| pgtable-prot.h | ||
| pgtable-types.h | ||
| pgtable.h | ||
| pkeys.h | ||
| pointer_auth.h | ||
| por.h | ||
| preempt.h | ||
| probes.h | ||
| proc-fns.h | ||
| processor.h | ||
| ptdump.h | ||
| ptrace.h | ||
| pvclock-abi.h | ||
| resctrl.h | ||
| ring_buffer.h | ||
| rqspinlock.h | ||
| rsi_cmds.h | ||
| rsi_smc.h | ||
| rsi.h | ||
| runtime-const.h | ||
| rwonce.h | ||
| scs.h | ||
| sdei.h | ||
| seccomp.h | ||
| sections.h | ||
| semihost.h | ||
| set_memory.h | ||
| setup.h | ||
| shmparam.h | ||
| signal.h | ||
| signal32.h | ||
| simd.h | ||
| smp_plat.h | ||
| smp.h | ||
| sparsemem.h | ||
| spectre.h | ||
| spinlock_types.h | ||
| spinlock.h | ||
| stack_pointer.h | ||
| stackprotector.h | ||
| stacktrace.h | ||
| stage2_pgtable.h | ||
| stat.h | ||
| static_call.h | ||
| string.h | ||
| suspend.h | ||
| sync_bitops.h | ||
| syscall_wrapper.h | ||
| syscall.h | ||
| sysreg.h | ||
| system_misc.h | ||
| text-patching.h | ||
| thread_info.h | ||
| timex.h | ||
| tlb.h | ||
| tlbbatch.h | ||
| tlbflush.h | ||
| topology.h | ||
| trans_pgd.h | ||
| traps.h | ||
| uaccess.h | ||
| unistd.h | ||
| unistd32.h | ||
| uprobes.h | ||
| vdso.h | ||
| vectors.h | ||
| vermagic.h | ||
| virt.h | ||
| vmalloc.h | ||
| vmap_stack.h | ||
| vncr_mapping.h | ||
| word-at-a-time.h | ||