KVM: arm64: nv: Reinject PAC exceptions caused by HCR_EL2.API==0
authorMarc Zyngier <maz@kernel.org>
Fri, 19 Apr 2024 10:29:30 +0000 (11:29 +0100)
committerMarc Zyngier <maz@kernel.org>
Sat, 20 Apr 2024 11:42:51 +0000 (12:42 +0100)
commit15db034733e4df3ca8ab4bf0a593a8a9b4860541
treee7e5eaaf57395f49b52110687ca5cd3d87166a21
parent279946ada1f26a905061d0d6f134fff9e7b14239
KVM: arm64: nv: Reinject PAC exceptions caused by HCR_EL2.API==0

In order for a L1 hypervisor to correctly handle PAuth instructions,
it must observe traps caused by a L1 PAuth instruction when
HCR_EL2.API==0. Since we already handle the case for API==1 as
a fixup, only the exception injection case needs to be handled.

Rework the kvm_handle_ptrauth() callback to reinject the trap
in this case. Note that APK==0 is already handled by the exising
triage_sysreg_trap() helper.

Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
Link: https://lore.kernel.org/r/20240419102935.1935571-11-maz@kernel.org
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/kvm/handle_exit.c