Am 08.02.23 um 10:01 schrieb Somalapuram Amaranath:
Use amdgpu_bo_in_cpu_visible_vram() instead.

Signed-off-by: Somalapuram Amaranath <amaranath.somalapu...@amd.com>
---
  drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 9 +++------
  1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
index 981010de0a28..d835ee2131d2 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
@@ -600,7 +600,7 @@ int amdgpu_bo_create(struct amdgpu_device *adev,
if (!amdgpu_gmc_vram_full_visible(&adev->gmc) &&
            bo->tbo.resource->mem_type == TTM_PL_VRAM &&
-           bo->tbo.resource->start < adev->gmc.visible_vram_size >> PAGE_SHIFT)
+           amdgpu_bo_in_cpu_visible_vram(bo))
                amdgpu_cs_report_moved_bytes(adev, ctx.bytes_moved,
                                             ctx.bytes_moved);
        else
@@ -1346,7 +1346,6 @@ vm_fault_t amdgpu_bo_fault_reserve_notify(struct 
ttm_buffer_object *bo)
        struct amdgpu_device *adev = amdgpu_ttm_adev(bo->bdev);
        struct ttm_operation_ctx ctx = { false, false };
        struct amdgpu_bo *abo = ttm_to_amdgpu_bo(bo);
-       unsigned long offset;
        int r;
/* Remember that this BO was accessed by the CPU */
@@ -1355,8 +1354,7 @@ vm_fault_t amdgpu_bo_fault_reserve_notify(struct 
ttm_buffer_object *bo)
        if (bo->resource->mem_type != TTM_PL_VRAM)
                return 0;
- offset = bo->resource->start << PAGE_SHIFT;
-       if ((offset + bo->base.size) <= adev->gmc.visible_vram_size)
+       if (amdgpu_bo_in_cpu_visible_vram(abo))
                return 0;
/* Can't move a pinned BO to visible VRAM */
@@ -1378,10 +1376,9 @@ vm_fault_t amdgpu_bo_fault_reserve_notify(struct 
ttm_buffer_object *bo)
        else if (unlikely(r))
                return VM_FAULT_SIGBUS;
- offset = bo->resource->start << PAGE_SHIFT;
        /* this should never happen */
        if (bo->resource->mem_type == TTM_PL_VRAM &&
-           (offset + bo->base.size) > adev->gmc.visible_vram_size)
+           amdgpu_bo_in_cpu_visible_vram(abo))

This check needs to be inversed. E.g. we return the error if the BO is not in visible VRAM.

Apart from that the patch looks good to me.

Regards,
Christian.

                return VM_FAULT_SIGBUS;
ttm_bo_move_to_lru_tail_unlocked(bo);

Reply via email to