cleanup: target is called before fence_get Fixes hangs on GPU reset on Turks GPU.
regression introduced by: commit dd7cfd641228abb2669d8d047d5ec377b1835900 Author: Maarten Lankhorst maarten.lankhorst@canonical.com Date: Tue Jan 21 13:07:31 2014 +0100
drm/ttm: kill fence_lock
No users are left, kill it off! :D Conversion to the reservation api is next on the list, after that the functionality can be restored with rcu.
Signed-off-by: Maarten Lankhorst maarten.lankhorst@canonical.com
CC: stable@vger.kernel.org Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=94081 Signed-off-by: Jan Vesely jan.vesely@rutgers.edu --- drivers/gpu/drm/radeon/radeon_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c index 00ead8c..89a8c48 100644 --- a/drivers/gpu/drm/radeon/radeon_display.c +++ b/drivers/gpu/drm/radeon/radeon_display.c @@ -573,6 +573,7 @@ vblank_cleanup: drm_vblank_put(crtc->dev, radeon_crtc->crtc_id);
pflip_cleanup: + fence_put(work->fence); if (unlikely(radeon_bo_reserve(new_rbo, false) != 0)) { DRM_ERROR("failed to reserve new rbo in error path\n"); goto cleanup; @@ -584,7 +585,6 @@ pflip_cleanup:
cleanup: drm_gem_object_unreference_unlocked(&work->old_rbo->gem_base); - fence_put(work->fence); kfree(work); return r; }