[PATCH] drm/amdgpu: fix addr handling in amdgpu_vm_bo_update_mapping

Flora Cui flora.cui at amd.com
Mon Sep 26 07:19:01 UTC 2016


On Sun, Sep 25, 2016 at 11:55:13AM +0200, Christian König wrote:
> From: Christian König <christian.koenig at amd.com>
> 
> Otherwise we will look at the wrong place in the IB when GART
> mappings are split into smaller updates.
> 
> Signed-off-by: Christian König <christian.koenig at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index 2bb78dc..da31189 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -1017,6 +1017,7 @@ static int amdgpu_vm_bo_update_mapping(struct amdgpu_device *adev,
>  						    AMDGPU_GPU_PAGE_SIZE);
>  			pte[i] |= flags;
>  		}
> +		addr = 0;
>  	}
>  
>  	r = amdgpu_sync_fence(adev, &job->sync, exclusive);
> -- 
> 2.5.0
> 
>

IMHO this could fix the vmfault issue.

8<---
>From cc7b5618665defd88e2adcd6f735562ecd784298 Mon Sep 17 00:00:00 2001
From: Flora Cui <Flora.Cui at amd.com>
Date: Mon, 26 Sep 2016 15:14:02 +0800
Subject: [PATCH] drm/amdgpu: add ttm_bind in amdgpu_vm_bo_update()

Change-Id: If73d5b06e9188e40250ccdfd1a2a659ed1ef52a6
Signed-off-by: Flora Cui <Flora.Cui at amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
index 2bb78dc..7f17127 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -1166,6 +1166,8 @@ int amdgpu_vm_bo_update(struct amdgpu_device *adev,
 			ttm = container_of(bo_va->bo->tbo.ttm, struct
 					   ttm_dma_tt, ttm);
 			pages_addr = ttm->dma_address;
+			amdgpu_ttm_bind(&bo_va->bo->tbo, mem);
+			addr = (u64)mem->start << PAGE_SHIFT;
 			break;
 
 		case TTM_PL_VRAM:
-- 
2.7.4




More information about the amd-gfx mailing list