]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Mar 2017 11:57:03 +0000 (12:57 +0100)
commitef217ea7f1fbe1f9a87080fadcc385c2660b60c0
tree4cacb28404fb8dbdeda9c945b96f96a75431c483
parentf70ce6c63e02d39a4009aa68d041a8dfe7f439f9
arm64: KVM: VHE: Clear HCR_TGE when invalidating guest TLBs

commit 68925176296a8b995e503349200e256674bfe5ac 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>
arch/arm64/kvm/hyp/tlb.c