KVM: arm64: Handle data and instruction external aborts the same way
authorWill Deacon <will@kernel.org>
Wed, 29 Jul 2020 10:28:19 +0000 (11:28 +0100)
committerMarc Zyngier <maz@kernel.org>
Thu, 30 Jul 2020 15:02:37 +0000 (16:02 +0100)
commit84b951a803a5464b0bff2fb1366e96f07f75b066
tree9450a719ec5d5dfa5c71d50187dc1a8786d4d08e
parentc9a636f29b5f236441ff059cef0b2fe734c05afd
KVM: arm64: Handle data and instruction external aborts the same way

If the guest generates a synchronous external abort which is not handled
by the host, we inject it back into the guest as a virtual SError, but
only if the original fault was reported on the data side. Instruction
faults are reported as "Unsupported FSC", causing the vCPU run loop to
bail with -EFAULT.

Although synchronous external aborts from a guest are pretty unusual,
treat them the same regardless of whether they are taken as data or
instruction aborts by EL2.

Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Quentin Perret <qperret@google.com>
Link: https://lore.kernel.org/r/20200729102821.23392-3-will@kernel.org
arch/arm64/kvm/mmu.c