diff options
author | Pan Bian <bianpan2016@163.com> | 2017-04-24 04:45:51 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2017-04-28 17:33:02 -0400 |
commit | 2f2429c38eddbc4f988589099fd86bb6bb65b7e4 (patch) | |
tree | 633c7370d9de1f53a2c4394d8c793f56d863b479 | |
parent | c346fb74fb646352018800375c327ac35880b7e0 (diff) |
drm/radeon: check return value of radeon_fence_emit
Function radeon_fence_emit() returns -ENOMEM if there is no enough
memory. And in this case, function radeon_ring_unlock_undo() rather than
function radeon_ring_unlock_commit() should be called. However, in
function radeon_test_create_and_emit_fence(), the return value of
radeon_fence_emit() is ignored. This patch adds the check.
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Pan Bian <bianpan2016@163.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_test.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_test.c b/drivers/gpu/drm/radeon/radeon_test.c index 4fdc7bda7a7d..f5e9abfadb56 100644 --- a/drivers/gpu/drm/radeon/radeon_test.c +++ b/drivers/gpu/drm/radeon/radeon_test.c | |||
@@ -298,7 +298,12 @@ static int radeon_test_create_and_emit_fence(struct radeon_device *rdev, | |||
298 | DRM_ERROR("Failed to lock ring A %d\n", ring->idx); | 298 | DRM_ERROR("Failed to lock ring A %d\n", ring->idx); |
299 | return r; | 299 | return r; |
300 | } | 300 | } |
301 | radeon_fence_emit(rdev, fence, ring->idx); | 301 | r = radeon_fence_emit(rdev, fence, ring->idx); |
302 | if (r) { | ||
303 | DRM_ERROR("Failed to emit fence\n"); | ||
304 | radeon_ring_unlock_undo(rdev, ring); | ||
305 | return r; | ||
306 | } | ||
302 | radeon_ring_unlock_commit(rdev, ring, false); | 307 | radeon_ring_unlock_commit(rdev, ring, false); |
303 | } | 308 | } |
304 | return 0; | 309 | return 0; |