diff options
| author | Christian König <[email protected]> | 2015-07-06 20:06:40 +0000 |
|---|---|---|
| committer | Alex Deucher <[email protected]> | 2015-08-17 20:50:13 +0000 |
| commit | 91e1a5207edec9e4f888e44478a9a254186e0ba8 (patch) | |
| tree | d03a1e06f744981034fb67eeb15b8d1644816278 /drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | |
| parent | drm/amdgpu: cleanup context structure v2 (diff) | |
| download | kernel-91e1a5207edec9e4f888e44478a9a254186e0ba8.tar.gz kernel-91e1a5207edec9e4f888e44478a9a254186e0ba8.zip | |
drm/amdgpu: deal with foreign fences in amdgpu_sync
This also requires some error handling from the callers of that function.
Signed-off-by: Christian König <[email protected]>
Reviewed-by: Jammy Zhou <[email protected]>
Reviewed-by: Chunming Zhou <[email protected]>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c index bc0fac618a3f..2722815eddbb 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c @@ -167,7 +167,11 @@ int amdgpu_ib_schedule(struct amdgpu_device *adev, unsigned num_ibs, /* grab a vm id if necessary */ struct amdgpu_fence *vm_id_fence = NULL; vm_id_fence = amdgpu_vm_grab_id(ibs->ring, ibs->vm); - amdgpu_sync_fence(&ibs->sync, vm_id_fence); + r = amdgpu_sync_fence(adev, &ibs->sync, &vm_id_fence->base); + if (r) { + amdgpu_ring_unlock_undo(ring); + return r; + } } r = amdgpu_sync_rings(&ibs->sync, ring); |
