Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9836c6b9 authored by Mario Smarduch's avatar Mario Smarduch Committed by Christoffer Dall
Browse files

KVM: arm64: Add HYP interface to flush VM Stage 1/2 TLB entries



This patch adds support for arm64 hyp interface to flush all TLBs associated
with VMID.

Reviewed-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: default avatarMario Smarduch <m.smarduch@samsung.com>
parent 8199ed0e
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -1030,6 +1030,28 @@ ENTRY(__kvm_tlb_flush_vmid_ipa)
	ret
ENDPROC(__kvm_tlb_flush_vmid_ipa)

/**
 * void __kvm_tlb_flush_vmid(struct kvm *kvm) - Flush per-VMID TLBs
 * @struct kvm *kvm - pointer to kvm structure
 *
 * Invalidates all Stage 1 and 2 TLB entries for current VMID.
 */
ENTRY(__kvm_tlb_flush_vmid)
	dsb     ishst

	kern_hyp_va     x0
	ldr     x2, [x0, #KVM_VTTBR]
	msr     vttbr_el2, x2
	isb

	tlbi    vmalls12e1is
	dsb     ish
	isb

	msr     vttbr_el2, xzr
	ret
ENDPROC(__kvm_tlb_flush_vmid)

ENTRY(__kvm_flush_vm_context)
	dsb	ishst
	tlbi	alle1is