]> www.infradead.org Git - users/jedix/linux-maple.git/commit
KVM: arm64: nv: Handle CPACR_EL1 traps
authorMarc Zyngier <maz@kernel.org>
Thu, 20 Jun 2024 16:46:46 +0000 (16:46 +0000)
committerOliver Upton <oliver.upton@linux.dev>
Thu, 20 Jun 2024 19:04:49 +0000 (19:04 +0000)
commit493da2b1c49ac86c0eb0dde9e42b79333272d1f9
tree9a8bdb8cb9664eca41b6901b0f43cae347acbd89
parent1785f020b1124c37f59f3d92b7d45ba1d707ee91
KVM: arm64: nv: Handle CPACR_EL1 traps

Handle CPACR_EL1 accesses when running a VHE guest. In order to
limit the cost of the emulation, implement it ass a shallow exit.

In the other cases:

- this is a nVHE L1 which will write to memory, and we don't trap

- this is a L2 guest:

  * the L1 has CPTR_EL2.TCPAC==0, and the L2 has direct register
   access

  * the L1 has CPTR_EL2.TCPAC==1, and the L2 will trap, but the
    handling is defered to the general handling for forwarding

Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20240620164653.1130714-10-oliver.upton@linux.dev
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
arch/arm64/kvm/hyp/vhe/switch.c