Merge branch kvm-arm64/misc-6.16 into kvmarm-master/next
authorMarc Zyngier <maz@kernel.org>
Fri, 23 May 2025 09:59:43 +0000 (10:59 +0100)
committerMarc Zyngier <maz@kernel.org>
Fri, 23 May 2025 09:59:43 +0000 (10:59 +0100)
* kvm-arm64/misc-6.16:
  : .
  : Misc changes and improvements for 6.16:
  :
  : - Add a new selftest for the SVE host state being corrupted by a guest
  :
  : - Keep HCR_EL2.xMO set at all times for systems running with the kernel at EL2,
  :   ensuring that the window for interrupts is slightly bigger, and avoiding
  :   a pretty bad erratum on the AmpereOne HW
  :
  : - Replace a couple of open-coded on/off strings with str_on_off()
  :
  : - Get rid of the pKVM memblock sorting, which now appears to be superflous
  :
  : - Drop superflous clearing of ICH_LR_EOI in the LR when nesting
  :
  : - Add workaround for AmpereOne's erratum AC04_CPU_23, which suffers from
  :   a pretty bad case of TLB corruption unless accesses to HCR_EL2 are
  :   heavily synchronised
  :
  : - Add a per-VM, per-ITS debugfs entry to dump the state of the ITS tables
  :   in a human-friendly fashion
  : .
  KVM: arm64: Fix documentation for vgic_its_iter_next()
  KVM: arm64: vgic-its: Add debugfs interface to expose ITS tables
  arm64: errata: Work around AmpereOne's erratum AC04_CPU_23
  KVM: arm64: nv: Remove clearing of ICH_LR<n>.EOI if ICH_LR<n>.HW == 1
  KVM: arm64: Drop sort_memblock_regions()
  KVM: arm64: selftests: Add test for SVE host corruption
  KVM: arm64: Force HCR_EL2.xMO to 1 at all times in VHE mode
  KVM: arm64: Replace ternary flags with str_on_off() helper

Signed-off-by: Marc Zyngier <maz@kernel.org>
12 files changed:
1  2 
arch/arm64/include/asm/el2_setup.h
arch/arm64/include/asm/kvm_arm.h
arch/arm64/include/asm/sysreg.h
arch/arm64/kernel/cpu_errata.c
arch/arm64/kvm/at.c
arch/arm64/kvm/hyp/include/hyp/switch.h
arch/arm64/kvm/hyp/nvhe/mem_protect.c
arch/arm64/kvm/hyp/nvhe/switch.c
arch/arm64/kvm/hyp/vgic-v3-sr.c
arch/arm64/kvm/hyp/vhe/switch.c
arch/arm64/kvm/pkvm.c
arch/arm64/tools/cpucaps

Simple merge
Simple merge
Simple merge
Simple merge
index da5359668b9c93d1cf53d9bf1855fbb61d772852,9c13e70fadf5e28cb840cad09d87324ade3d1dc7..a25be111cd8f865f9d429d8d42537bc5f4f0d078
@@@ -1244,8 -1266,8 +1244,8 @@@ static u64 __kvm_at_s1e01_fast(struct k
        __load_stage2(mmu, mmu->arch);
  
  skip_mmu_switch:
 -      /* Clear TGE, enable S2 translation, we're rolling */
 -      write_sysreg_hcr((config.hcr & ~HCR_TGE) | HCR_VM);
 +      /* Temporarily switch back to guest context */
-       write_sysreg(vcpu->arch.hcr_el2, hcr_el2);
++      write_sysreg_hcr(vcpu->arch.hcr_el2);
        isb();
  
        switch (op) {
        if (!fail)
                par = read_sysreg_par();
  
-       write_sysreg(HCR_HOST_VHE_FLAGS, hcr_el2);
++      write_sysreg_hcr(HCR_HOST_VHE_FLAGS);
 +
        if (!(vcpu_el2_e2h_is_set(vcpu) && vcpu_el2_tge_is_set(vcpu)))
                __mmu_config_restore(&config);
  
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge