aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2018-09-14 14:44:17 -0400
committerAlex Deucher <alexander.deucher@amd.com>2018-09-19 13:36:03 -0400
commit3b2de69944cfac8bc8f43c81aeadcbefc31ed48e (patch)
tree0c85ccb828282242d1401b9c3ec10aeb90034281
parent0ee8685392a642ffb381d15d9fe4445d4ec03b56 (diff)
drm/amdgpu: stop crashing on GDS/GWS/OA eviction
Simply ignore any copying here. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index 1565344cc139..c81b35d06df1 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -256,6 +256,13 @@ static void amdgpu_evict_flags(struct ttm_buffer_object *bo,
256 256
257 abo = ttm_to_amdgpu_bo(bo); 257 abo = ttm_to_amdgpu_bo(bo);
258 switch (bo->mem.mem_type) { 258 switch (bo->mem.mem_type) {
259 case AMDGPU_PL_GDS:
260 case AMDGPU_PL_GWS:
261 case AMDGPU_PL_OA:
262 placement->num_placement = 0;
263 placement->num_busy_placement = 0;
264 return;
265
259 case TTM_PL_VRAM: 266 case TTM_PL_VRAM:
260 if (!adev->mman.buffer_funcs_enabled) { 267 if (!adev->mman.buffer_funcs_enabled) {
261 /* Move to system memory */ 268 /* Move to system memory */
@@ -283,6 +290,7 @@ static void amdgpu_evict_flags(struct ttm_buffer_object *bo,
283 case TTM_PL_TT: 290 case TTM_PL_TT:
284 default: 291 default:
285 amdgpu_bo_placement_from_domain(abo, AMDGPU_GEM_DOMAIN_CPU); 292 amdgpu_bo_placement_from_domain(abo, AMDGPU_GEM_DOMAIN_CPU);
293 break;
286 } 294 }
287 *placement = abo->placement; 295 *placement = abo->placement;
288} 296}
@@ -675,6 +683,16 @@ static int amdgpu_bo_move(struct ttm_buffer_object *bo, bool evict,
675 amdgpu_move_null(bo, new_mem); 683 amdgpu_move_null(bo, new_mem);
676 return 0; 684 return 0;
677 } 685 }
686 if (old_mem->mem_type == AMDGPU_PL_GDS ||
687 old_mem->mem_type == AMDGPU_PL_GWS ||
688 old_mem->mem_type == AMDGPU_PL_OA ||
689 new_mem->mem_type == AMDGPU_PL_GDS ||
690 new_mem->mem_type == AMDGPU_PL_GWS ||
691 new_mem->mem_type == AMDGPU_PL_OA) {
692 /* Nothing to save here */
693 amdgpu_move_null(bo, new_mem);
694 return 0;
695 }
678 696
679 if (!adev->mman.buffer_funcs_enabled) 697 if (!adev->mman.buffer_funcs_enabled)
680 goto memcpy; 698 goto memcpy;