• Marc Zyngier's avatar
    Merge branch kvm-arm64/vgic-sre-traps into kvmarm-master/next · acf2ab28
    Marc Zyngier authored
    * kvm-arm64/vgic-sre-traps:
      : .
      : Fix the multiple of cases where KVM/arm64 doesn't correctly
      : handle the guest trying to use a GICv3 that isn't advertised.
      :
      : From the cover letter:
      :
      : "It recently appeared that, when running on a GICv3-equipped platform
      : (which is what non-ancient arm64 HW has), *not* configuring a GICv3
      : for the guest could result in less than desirable outcomes.
      :
      : We have multiple issues to fix:
      :
      : - for registers that *always* trap (the SGI registers) or that *may*
      :   trap (the SRE register), we need to check whether a GICv3 has been
      :   instantiated before acting upon the trap.
      :
      : - for registers that only conditionally trap, we must actively trap
      :   them even in the absence of a GICv3 being instantiated, and handle
      :   those traps accordingly.
      :
      : - finally, ID registers must reflect the absence of a GICv3, so that
      :   we are consistent.
      :
      : This series goes through all these requirements. The main complexity
      : here is to apply a GICv3 configuration on the host in the absence of a
      : GICv3 in the guest. This is pretty hackish, but I don't have a much
      : better solution so far.
      :
      : As part of making wider use of of the trap bits, we fully define the
      : trap routing as per the architecture, something that we eventually
      : need for NV anyway."
      : .
      KVM: arm64: selftests: Cope with lack of GICv3 in set_id_regs
      KVM: arm64: Add selftest checking how the absence of GICv3 is handled
      KVM: arm64: Unify UNDEF injection helpers
      KVM: arm64: Make most GICv3 accesses UNDEF if they trap
      KVM: arm64: Honor guest requested traps in GICv3 emulation
      KVM: arm64: Add trap routing information for ICH_HCR_EL2
      KVM: arm64: Add ICH_HCR_EL2 to the vcpu state
      KVM: arm64: Zero ID_AA64PFR0_EL1.GIC when no GICv3 is presented to the guest
      KVM: arm64: Add helper for last ditch idreg adjustments
      KVM: arm64: Force GICv3 trap activation when no irqchip is configured on VHE
      KVM: arm64: Force SRE traps when SRE access is not enabled
      KVM: arm64: Move GICv3 trap configuration to kvm_calculate_traps()
    Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
    acf2ab28
sys_regs.c 127 KB