arm64: KVM: VHE: Implement VHE activate/deactivate_traps
authorMarc Zyngier <marc.zyngier@arm.com>
Thu, 29 Jan 2015 15:47:55 +0000 (15:47 +0000)
committerMarc Zyngier <marc.zyngier@arm.com>
Mon, 29 Feb 2016 18:34:17 +0000 (18:34 +0000)
commit68908bf789b7fd376538a4bad8367d5dcb9ec983
tree5c8593b0ba2a42cbeacf314572402fdc71b3aab8
parent328762247cd33b4533f9dd89a4faf40288f359b7
arm64: KVM: VHE: Implement VHE activate/deactivate_traps

Running the kernel in HYP mode requires the HCR_E2H bit to be set
at all times, and the HCR_TGE bit to be set when running as a host
(and cleared when running as a guest). At the same time, the vector
 must be set to the current role of the kernel (either host or
hypervisor), and a couple of system registers differ between VHE
and non-VHE.

We implement these by using another set of alternate functions
that get dynamically patched.

Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
arch/arm64/include/asm/kvm_arm.h
arch/arm64/include/asm/kvm_emulate.h
arch/arm64/kvm/hyp/switch.c