mbox series

[v4.19,0/4] KVM: arm64: Fix AT instruction handling

Message ID 20200902100821.149574-1-andre.przywara@arm.com
Headers show
Series KVM: arm64: Fix AT instruction handling | expand

Message

Andre Przywara Sept. 2, 2020, 10:08 a.m. UTC
In some architectural corner cases, AT instructions can generate an
exception, which KVM is not really ready to handle properly.
Teach the code to handle this situation gracefully.

This is a backport of the respective upstream patches to v4.19(.142).
James prepared and tested these already, but we were lacking the upstream
commit IDs so far.
I am sending this on his behalf, since he is off this week.

The original patches contained stable tags, but with a prerequisite
patch in v5.3. Patch 2/4 is a backport of this one, patches 1/4 and 3/4
needed some massaging to apply and work on 4.19.

Cheers,
Andre.

James Morse (4):
  KVM: arm64: Add kvm_extable for vaxorcism code
  KVM: arm64: Defer guest entry when an asynchronous exception is pending
  KVM: arm64: Survive synchronous exceptions caused by AT instructions
  KVM: arm64: Set HCR_EL2.PTW to prevent AT taking synchronous exception

 arch/arm64/include/asm/kvm_arm.h |  3 +-
 arch/arm64/include/asm/kvm_asm.h | 43 ++++++++++++++++++++++
 arch/arm64/kernel/vmlinux.lds.S  |  8 ++++
 arch/arm64/kvm/hyp/entry.S       | 31 +++++++++++++---
 arch/arm64/kvm/hyp/hyp-entry.S   | 63 +++++++++++++++++++++-----------
 arch/arm64/kvm/hyp/switch.c      | 39 ++++++++++++++++++--
 6 files changed, 154 insertions(+), 33 deletions(-)