diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c index b22a95f0571c..76a1f823d983 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | |||
@@ -38,19 +38,14 @@ static struct fence *amdgpu_sched_dependency(struct amd_sched_job *sched_job) | |||
38 | 38 | ||
39 | if (fence == NULL && vm && !job->ibs->grabbed_vmid) { | 39 | if (fence == NULL && vm && !job->ibs->grabbed_vmid) { |
40 | struct amdgpu_ring *ring = job->ibs->ring; | 40 | struct amdgpu_ring *ring = job->ibs->ring; |
41 | struct amdgpu_device *adev = ring->adev; | ||
42 | int r; | 41 | int r; |
43 | 42 | ||
44 | mutex_lock(&adev->vm_manager.lock); | 43 | r = amdgpu_vm_grab_id(vm, ring, sync, |
45 | r = amdgpu_vm_grab_id(vm, ring, sync); | 44 | &job->base.s_fence->base); |
46 | if (r) { | 45 | if (r) |
47 | DRM_ERROR("Error getting VM ID (%d)\n", r); | 46 | DRM_ERROR("Error getting VM ID (%d)\n", r); |
48 | } else { | 47 | else |
49 | fence = &job->base.s_fence->base; | ||
50 | amdgpu_vm_fence(ring->adev, vm, fence); | ||
51 | job->ibs->grabbed_vmid = true; | 48 | job->ibs->grabbed_vmid = true; |
52 | } | ||
53 | mutex_unlock(&adev->vm_manager.lock); | ||
54 | 49 | ||
55 | fence = amdgpu_sync_get_fence(sync); | 50 | fence = amdgpu_sync_get_fence(sync); |
56 | } | 51 | } |