linux/arch/arm64/kvm
Marc Zyngier 61e79860b4 arm64: KVM: VHE: Clear HCR_TGE when invalidating guest TLBs
commit 6892517629 upstream.

When invalidating guest TLBs, special care must be taken to
actually shoot the guest TLBs and not the host ones if we're
running on a VHE system.  This is controlled by the HCR_EL2.TGE
bit, which we forget to clear before invalidating TLBs.

Address the issue by introducing two wrappers (__tlb_switch_to_guest
and __tlb_switch_to_host) that take care of both the VTTBR_EL2
and HCR_EL2.TGE switching.

Reported-by: Tomasz Nowicki <tnowicki@caviumnetworks.com>
Tested-by: Tomasz Nowicki <tnowicki@caviumnetworks.com>
Reviewed-by: Christoffer Dall <cdall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2017-03-22 12:43:39 +01:00
..
hyp arm64: KVM: VHE: Clear HCR_TGE when invalidating guest TLBs 2017-03-22 12:43:39 +01:00
debug.c KVM: arm64: add trace points for guest_debug debug 2015-07-21 12:50:43 +01:00
guest.c KVM: ARM64: Fix typos 2016-06-14 11:16:27 +02:00
handle_exit.c arm64: KVM: Inject a Virtual SError if it was pending 2016-09-08 12:53:00 +02:00
hyp-init.S arm64: KVM: Simplify HYP init/teardown 2016-07-03 23:41:27 +02:00
hyp.S arm64/kvm: use alternative auto-nop 2016-09-12 10:46:07 +01:00
inject_fault.c arm64: KVM: Add Virtual Abort injection helper 2016-09-08 12:53:00 +02:00
irq.h KVM: arm/arm64: Enable irqchip routing 2016-07-22 18:52:01 +01:00
Kconfig ARM: KVM: Support vgic-v3 2016-09-22 13:22:21 +02:00
Makefile arm64: KVM: Move the AArch32 conditional execution to common code 2016-09-08 12:53:00 +02:00
regmap.c arm64: KVM: 32bit GP register access 2013-06-12 16:42:14 +01:00
reset.c KVM: arm64: vgic-its: Enable ITS emulation as a virtual MSI controller 2016-07-18 18:14:38 +01:00
sys_regs.c arm64: KVM: pmu: Fix AArch32 cycle counter access 2016-11-18 09:02:04 +00:00
sys_regs.h arm64: KVM: Correctly handle zero register in system register accesses 2015-12-04 16:29:54 +00:00
sys_regs_generic_v8.c arm64/kvm: use {read,write}_sysreg() 2016-09-09 11:42:27 +01:00
trace.h KVM: arm64: add trace points for guest_debug debug 2015-07-21 12:50:43 +01:00