[PATCH stable v4.14 0/4] KVM: arm64: Fix AT instruction handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.14(.196).
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 (removing ARMv8.2 RAS
barriers, which are not supported in v4.14), patches 1/4 and 3/4
needed some massaging to apply and work on 4.14.

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       | 26 ++++++++++---
 arch/arm64/kvm/hyp/hyp-entry.S   | 63 +++++++++++++++++++++-----------
 arch/arm64/kvm/hyp/switch.c      | 39 ++++++++++++++++++--
 6 files changed, 150 insertions(+), 32 deletions(-)

-- 
2.17.1




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux