diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2018-12-06 17:31:19 +0000 |
---|---|---|
committer | Will Deacon <will.deacon@arm.com> | 2018-12-10 11:54:37 +0000 |
commit | c987876a80e7bcb98a839f10dca9ce7fda4feced (patch) | |
tree | 90736c01cfc0860f68da3c714d50b80a7c70eb03 /virt | |
parent | 9ff01193a20d391e8dbce4403dd5ef87c7eaaca6 (diff) | |
download | linux-c987876a80e7bcb98a839f10dca9ce7fda4feced.tar.bz2 |
arm64: KVM: Make VHE Stage-2 TLB invalidation operations non-interruptible
Contrary to the non-VHE version of the TLB invalidation helpers, the VHE
code has interrupts enabled, meaning that we can take an interrupt in
the middle of such a sequence, and start running something else with
HCR_EL2.TGE cleared.
That's really not a good idea.
Take the heavy-handed option and disable interrupts in
__tlb_switch_to_guest_vhe, restoring them in __tlb_switch_to_host_vhe.
The latter also gain an ISB in order to make sure that TGE really has
taken effect.
Cc: stable@vger.kernel.org
Acked-by: Christoffer Dall <christoffer.dall@arm.com>
Reviewed-by: James Morse <james.morse@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'virt')
0 files changed, 0 insertions, 0 deletions