2022-10-08 09:34:08

by Deming Wang

[permalink] [raw]
Subject: [PATCH] drm/amdkfd: use vma_lookup() instead of find_vma()

Using vma_lookup() verifies the start address is contained in the found
vma. This results in easier to read the code.

Signed-off-by: Deming Wang <[email protected]>
---
drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
index 2797029bd500..3599cc931b0a 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
@@ -529,8 +529,8 @@ svm_migrate_ram_to_vram(struct svm_range *prange, uint32_t best_loc,
for (addr = start; addr < end;) {
unsigned long next;

- vma = find_vma(mm, addr);
- if (!vma || addr < vma->vm_start)
+ vma = vma_lookup(mm, addr);
+ if (!vma)
break;

next = min(vma->vm_end, end);
@@ -798,8 +798,8 @@ int svm_migrate_vram_to_ram(struct svm_range *prange, struct mm_struct *mm,
for (addr = start; addr < end;) {
unsigned long next;

- vma = find_vma(mm, addr);
- if (!vma || addr < vma->vm_start) {
+ vma = vma_lookup(mm, addr)
+ if (!vma) {
pr_debug("failed to find vma for prange %p\n", prange);
r = -EFAULT;
break;
--
2.27.0


2022-10-20 17:19:38

by Felix Kuehling

[permalink] [raw]
Subject: Re: [PATCH] drm/amdkfd: use vma_lookup() instead of find_vma()

Am 2022-10-06 um 22:26 schrieb Deming Wang:
> Using vma_lookup() verifies the start address is contained in the found
> vma. This results in easier to read the code.
>
> Signed-off-by: Deming Wang <[email protected]>
> ---
> drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
> index 2797029bd500..3599cc931b0a 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
> @@ -529,8 +529,8 @@ svm_migrate_ram_to_vram(struct svm_range *prange, uint32_t best_loc,
> for (addr = start; addr < end;) {
> unsigned long next;
>
> - vma = find_vma(mm, addr);
> - if (!vma || addr < vma->vm_start)
> + vma = vma_lookup(mm, addr);
> + if (!vma)
> break;
>
> next = min(vma->vm_end, end);
> @@ -798,8 +798,8 @@ int svm_migrate_vram_to_ram(struct svm_range *prange, struct mm_struct *mm,
> for (addr = start; addr < end;) {
> unsigned long next;
>
> - vma = find_vma(mm, addr);
> - if (!vma || addr < vma->vm_start) {
> + vma = vma_lookup(mm, addr)

There is a semicolon missing here. I will fix this before I submit the
patch.

Please do at least a minimum amount of due diligence before posting
patches. That would include a test to make sure your code compiles.

Regards,
  Felix


> + if (!vma) {
> pr_debug("failed to find vma for prange %p\n", prange);
> r = -EFAULT;
> break;