[PATCH 2/3] arm64: Add HYP interface to flush VM Stage 1/2 TLB entires
Christoffer Dall
christoffer.dall at linaro.org
Fri Nov 7 12:20:32 PST 2014
On Thu, Oct 09, 2014 at 07:34:06PM -0700, Mario Smarduch wrote:
> This patch adds HYP VM TLB FLush function.
>
> Signed-off-by: Mario Smarduch <m.smarduch at samsung.com>
> ---
> arch/arm64/kvm/hyp.S | 22 ++++++++++++++++++++++
> 1 file changed, 22 insertions(+)
>
> diff --git a/arch/arm64/kvm/hyp.S b/arch/arm64/kvm/hyp.S
> index b0d1512..117a91c 100644
> --- a/arch/arm64/kvm/hyp.S
> +++ b/arch/arm64/kvm/hyp.S
> @@ -645,6 +645,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
> + * @struc kvm *kvm - pointer to kvm structure
struct
> + *
> + * 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
> --
> 1.9.1
>
Looks good to me:
Reviewed-by: Christoffer Dall <christoffer.dall at linaro.org>
More information about the linux-arm-kernel
mailing list