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)
commit425807ccccfedaf45f9b0965f842f10f6f358737
tree8a4bc475b085466081d3fbe2f0ab9a4109dabd66
parent94e2a518d0ac4a168bccd1446b1a1407458c45bd
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