Merge branch kvm-arm64/nv-nv into kvmarm-master/next
authorMarc Zyngier <maz@kernel.org>
Fri, 23 May 2025 09:58:57 +0000 (10:58 +0100)
committerMarc Zyngier <maz@kernel.org>
Fri, 23 May 2025 09:58:57 +0000 (10:58 +0100)
* kvm-arm64/nv-nv:
  : .
  : Flick the switch on the NV support by adding the missing piece
  : in the form of the VNCR page management. From the cover letter:
  :
  : "This is probably the most interesting bit of the whole NV adventure.
  : So far, everything else has been a walk in the park, but this one is
  : where the real fun takes place.
  :
  : With FEAT_NV2, most of the NV support revolves around tricking a guest
  : into accessing memory while it tries to access system registers. The
  : hypervisor's job is to handle the context switch of the actual
  : registers with the state in memory as needed."
  : .
  KVM: arm64: nv: Release faulted-in VNCR page from mmu_lock critical section
  KVM: arm64: nv: Handle TLBI S1E2 for VNCR invalidation with mmu_lock held
  KVM: arm64: nv: Hold mmu_lock when invalidating VNCR SW-TLB before translating
  KVM: arm64: Document NV caps and vcpu flags
  KVM: arm64: Allow userspace to request KVM_ARM_VCPU_EL2*
  KVM: arm64: nv: Remove dead code from ERET handling
  KVM: arm64: nv: Plumb TLBI S1E2 into system instruction dispatch
  KVM: arm64: nv: Add S1 TLB invalidation primitive for VNCR_EL2
  KVM: arm64: nv: Program host's VNCR_EL2 to the fixmap address
  KVM: arm64: nv: Handle VNCR_EL2 invalidation from MMU notifiers
  KVM: arm64: nv: Handle mapping of VNCR_EL2 at EL2
  KVM: arm64: nv: Handle VNCR_EL2-triggered faults
  KVM: arm64: nv: Add userspace and guest handling of VNCR_EL2
  KVM: arm64: nv: Add pseudo-TLB backing VNCR_EL2
  KVM: arm64: nv: Don't adjust PSTATE.M when L2 is nesting
  KVM: arm64: nv: Move TLBI range decoding to a helper
  KVM: arm64: nv: Snapshot S1 ASID tagging information during walk
  KVM: arm64: nv: Extract translation helper from the AT code
  KVM: arm64: nv: Allocate VNCR page when required
  arm64: sysreg: Add layout for VNCR_EL2

Signed-off-by: Marc Zyngier <maz@kernel.org>
1  2 
arch/arm64/include/asm/esr.h
arch/arm64/include/asm/kvm_host.h
arch/arm64/include/asm/sysreg.h
arch/arm64/kvm/arm.c
arch/arm64/kvm/emulate-nested.c
arch/arm64/kvm/handle_exit.c
arch/arm64/kvm/nested.c
arch/arm64/kvm/sys_regs.c
arch/arm64/tools/sysreg

Simple merge
index 672ae3c51219114e6daedba31e293aec19adb7f1,79e175a16d35691c9df7439dba85bf190bd5532e..d941abc6b5eef6143454f194b677729a3ece7be7
@@@ -567,12 -565,9 +571,14 @@@ enum vcpu_sysreg 
        VNCR(HDFGRTR_EL2),
        VNCR(HDFGWTR_EL2),
        VNCR(HAFGRTR_EL2),
 +      VNCR(HFGRTR2_EL2),
 +      VNCR(HFGWTR2_EL2),
 +      VNCR(HFGITR2_EL2),
 +      VNCR(HDFGRTR2_EL2),
 +      VNCR(HDFGWTR2_EL2),
  
+       VNCR(VNCR_EL2),
        VNCR(CNTVOFF_EL2),
        VNCR(CNTV_CVAL_EL0),
        VNCR(CNTV_CTL_EL0),
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge