Re: [PATCH 2/4] KVM: arm64: Use find_vma_intersection()

From: Keqian Zhu
Date: Tue Mar 16 2021 - 00:21:20 EST


Hi Gavin,

On 2021/3/16 11:52, Gavin Shan wrote:
> Hi Keqian,
>
> On 3/15/21 8:42 PM, Gavin Shan wrote:
>> On 3/15/21 7:04 PM, Keqian Zhu wrote:
>>> On 2021/3/15 12:18, Gavin Shan wrote:
>>>> find_vma_intersection() has been existing to search the intersected
>>>> vma. This uses the function where it's applicable, to simplify the
>>>> code.
>>>>
>>>> Signed-off-by: Gavin Shan <gshan@xxxxxxxxxx>
>>>> ---
>>>> arch/arm64/kvm/mmu.c | 10 ++++++----
>>>> 1 file changed, 6 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c
>>>> index 84e70f953de6..286b603ed0d3 100644
>>>> --- a/arch/arm64/kvm/mmu.c
>>>> +++ b/arch/arm64/kvm/mmu.c
>>>> @@ -421,10 +421,11 @@ static void stage2_unmap_memslot(struct kvm *kvm,
>>>> * +--------------------------------------------+
>>>> */
>>>> do {
>>>> - struct vm_area_struct *vma = find_vma(current->mm, hva);
>>>> + struct vm_area_struct *vma;
>>>> hva_t vm_start, vm_end;
>>>> - if (!vma || vma->vm_start >= reg_end)
>>>> + vma = find_vma_intersection(current->mm, hva, reg_end);
>>> Nit: Keep a same style may be better(Assign vma when declare it).
>>> Other looks good to me.
>>>
>>
>> Yeah, I agree. I will adjust the code in v2 and included your r-b.
>> Thanks for your time to review.
>>
>
> After rechecking the code, I think it'd better to keep current style
> because there is a follow-on validation on @vma. Keeping them together
> seems a good idea. I think it wouldn't a big deal to you. So I will
> keep current style with your r-b in v2.
Sure, both is OK. ;-)

Thanks,
Keqian
>
> vma = find_vma_intersection(current->mm, hva, reg_end);
> if (!vma)
> break;
> Thanks,
> Gavin
>
>>>> + if (!vma)
>>>> break;
>>>> /*
>>>> @@ -1330,10 +1331,11 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm,
>>>> * +--------------------------------------------+
>>>> */
>>>> do {
>>>> - struct vm_area_struct *vma = find_vma(current->mm, hva);
>>>> + struct vm_area_struct *vma;
>>>> hva_t vm_start, vm_end;
>>>> - if (!vma || vma->vm_start >= reg_end)
>>>> + vma = find_vma_intersection(current->mm, hva, reg_end);
>>>> + if (!vma)
>>>> break;
>>>> /*
>>>>
>>>
>>
>
> .
>