• Marc Zyngier's avatar
    Merge branch kvm-arm64/nv-eret-pauth into kvmarm-master/next · 2d38f439
    Marc Zyngier authored
    * kvm-arm64/nv-eret-pauth:
      : .
      : Add NV support for the ERETAA/ERETAB instructions. From the cover letter:
      :
      : "Although the current upstream NV support has *some* support for
      : correctly emulating ERET, that support is only partial as it doesn't
      : support the ERETAA and ERETAB variants.
      :
      : Supporting these instructions was cast aside for a long time as it
      : involves implementing some form of PAuth emulation, something I wasn't
      : overly keen on. But I have reached a point where enough of the
      : infrastructure is there that it actually makes sense. So here it is!"
      : .
      KVM: arm64: nv: Work around lack of pauth support in old toolchains
      KVM: arm64: Drop trapping of PAuth instructions/keys
      KVM: arm64: nv: Advertise support for PAuth
      KVM: arm64: nv: Handle ERETA[AB] instructions
      KVM: arm64: nv: Add emulation for ERETAx instructions
      KVM: arm64: nv: Add kvm_has_pauth() helper
      KVM: arm64: nv: Reinject PAC exceptions caused by HCR_EL2.API==0
      KVM: arm64: nv: Handle HCR_EL2.{API,APK} independently
      KVM: arm64: nv: Honor HFGITR_EL2.ERET being set
      KVM: arm64: nv: Fast-track 'InHost' exception returns
      KVM: arm64: nv: Add trap forwarding for ERET and SMC
      KVM: arm64: nv: Configure HCR_EL2 for FEAT_NV2
      KVM: arm64: nv: Drop VCPU_HYP_CONTEXT flag
      KVM: arm64: Constraint PAuth support to consistent implementations
      KVM: arm64: Add helpers for ESR_ELx_ERET_ISS_ERET*
      KVM: arm64: Harden __ctxt_sys_reg() against out-of-range values
    Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
    2d38f439
switch.c 10.6 KB