diff options
author | Christian König <christian.koenig@amd.com> | 2018-09-14 14:44:17 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2018-09-19 13:36:03 -0400 |
commit | 3b2de69944cfac8bc8f43c81aeadcbefc31ed48e (patch) | |
tree | 0c85ccb828282242d1401b9c3ec10aeb90034281 | |
parent | 0ee8685392a642ffb381d15d9fe4445d4ec03b56 (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.c | 18 |
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; |