[PATCH 2/3] arm64: Add HYP interface to flush VM Stage 1/2 TLB entires

Mario Smarduch m.smarduch at samsung.com
Fri Nov 7 12:50:37 PST 2014


On 11/07/2014 12:20 PM, Christoffer Dall wrote:
> 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

Got it.
> 
>> + *
>> + * 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