Changes from v1: - (Re-)adding Marc's review tags from upstream. Differences to the original patches are trivial for 2/3 and 3/3, and straight-forward for 1/3. - Fix spelling of vaxorcism (hope my soul gets spared for the sacrilege)
---------- 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 v5.4(.61). 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 last two of the patches were tagged Cc: stable already, but did not apply cleanly, hence this specific backport.
Cheers, Andre.
James Morse (3): KVM: arm64: Add kvm_extable for vaxorcism code 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 | 15 +++++--- arch/arm64/kvm/hyp/hyp-entry.S | 65 ++++++++++++++++++++------------ arch/arm64/kvm/hyp/switch.c | 39 +++++++++++++++++-- 6 files changed, 138 insertions(+), 35 deletions(-)