diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 | 
1 files changed, 5 insertions, 1 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c index f9479e23de18..2ceeaa4c793a 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c @@ -581,7 +581,8 @@ int amdgpu_vm_flush(struct amdgpu_ring *ring, struct amdgpu_job *job,  	}  	dma_fence_put(fence); -	if (ring->funcs->emit_gds_switch && gds_switch_needed) { +	if (!ring->is_mes_queue && ring->funcs->emit_gds_switch && +	    gds_switch_needed) {  		id->gds_base = job->gds_base;  		id->gds_size = job->gds_size;  		id->gws_base = job->gws_base; @@ -705,6 +706,9 @@ int amdgpu_vm_update_pdes(struct amdgpu_device *adev,  	if (r)  		goto error; +	/* vm_flush_needed after updating PDEs */ +	atomic64_inc(&vm->tlb_seq); +  	while (!list_empty(&vm->relocated)) {  		entry = list_first_entry(&vm->relocated,  					 struct amdgpu_vm_bo_base, | 
