Am 08.06.21 um 15:06 schrieb Nirmoy Das:
Fixes handling when page tables are in system memory.

v3: remove struct amdgpu_vm_parser.
v2: remove unwanted variable.
     change amdgpu_amdkfd_validate instead of amdgpu_amdkfd_bo_validate.

Signed-off-by: Nirmoy Das <nirmoy....@amd.com>

Reviewed-by: Christian König <christian.koe...@amd.com> but Felix should probably take a look as well.

---
  .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c  | 21 ++++---------------
  1 file changed, 4 insertions(+), 17 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
index d6cb7cf76623..016815b7a773 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
@@ -47,12 +47,6 @@ static struct {
        spinlock_t mem_limit_lock;
  } kfd_mem_limit;

-/* Struct used for amdgpu_amdkfd_bo_validate */
-struct amdgpu_vm_parser {
-       uint32_t        domain;
-       bool            wait;
-};
-
  static const char * const domain_bit_to_string[] = {
                "CPU",
                "GTT",
@@ -348,11 +342,9 @@ static int amdgpu_amdkfd_bo_validate(struct amdgpu_bo *bo, 
uint32_t domain,
        return ret;
  }

-static int amdgpu_amdkfd_validate(void *param, struct amdgpu_bo *bo)
+static int amdgpu_amdkfd_validate_vm_bo(void *_unused, struct amdgpu_bo *bo)
  {
-       struct amdgpu_vm_parser *p = param;
-
-       return amdgpu_amdkfd_bo_validate(bo, p->domain, p->wait);
+       return amdgpu_amdkfd_bo_validate(bo, bo->allowed_domains, false);
  }

  /* vm_validate_pt_pd_bos - Validate page table and directory BOs
@@ -366,20 +358,15 @@ static int vm_validate_pt_pd_bos(struct amdgpu_vm *vm)
  {
        struct amdgpu_bo *pd = vm->root.base.bo;
        struct amdgpu_device *adev = amdgpu_ttm_adev(pd->tbo.bdev);
-       struct amdgpu_vm_parser param;
        int ret;

-       param.domain = AMDGPU_GEM_DOMAIN_VRAM;
-       param.wait = false;
-
-       ret = amdgpu_vm_validate_pt_bos(adev, vm, amdgpu_amdkfd_validate,
-                                       &param);
+       ret = amdgpu_vm_validate_pt_bos(adev, vm, amdgpu_amdkfd_validate_vm_bo, 
NULL);
        if (ret) {
                pr_err("failed to validate PT BOs\n");
                return ret;
        }

-       ret = amdgpu_amdkfd_validate(&param, pd);
+       ret = amdgpu_amdkfd_validate_vm_bo(NULL, pd);
        if (ret) {
                pr_err("failed to validate PD\n");
                return ret;
--
2.31.1


_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to