arm64: KVM: VHE: Clear HCR_TGE when invalidating guest TLBs
authorMarc Zyngier <marc.zyngier@arm.com>
Fri, 17 Feb 2017 14:32:18 +0000 (14:32 +0000)
committerMarc Zyngier <marc.zyngier@arm.com>
Mon, 6 Mar 2017 10:28:24 +0000 (10:28 +0000)
commit68925176296a8b995e503349200e256674bfe5ac
tree8a4bc475b085466081d3fbe2f0ab9a4109dabd66
parentc1ae3cfa0e89fa1a7ecc4c99031f5e9ae99d9201
arm64: KVM: VHE: Clear HCR_TGE when invalidating guest TLBs

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>
Cc: stable@vger.kernel.org
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
arch/arm64/kvm/hyp/tlb.c