diff options
author | Mario Kleiner <mario.kleiner.de@gmail.com> | 2014-07-16 19:37:53 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2014-07-17 09:03:57 -0400 |
commit | 826484977c29b42c8cb8c42bd41acaa6e152a4bb (patch) | |
tree | e1dc38919dacbc14f01fb97b31f23571350d879f /drivers/gpu/drm/radeon | |
parent | c89e5be621e84b7b83650d87a956c52c5654c35b (diff) |
drm/radeon: Add missing vblank_put in pageflip ioctl error path.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/radeon')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_display.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c index bfa3a6cc170f..0a22a1bb688c 100644 --- a/drivers/gpu/drm/radeon/radeon_display.c +++ b/drivers/gpu/drm/radeon/radeon_display.c | |||
@@ -538,7 +538,7 @@ static int radeon_crtc_page_flip(struct drm_crtc *crtc, | |||
538 | DRM_DEBUG_DRIVER("flip queue: crtc already busy\n"); | 538 | DRM_DEBUG_DRIVER("flip queue: crtc already busy\n"); |
539 | spin_unlock_irqrestore(&crtc->dev->event_lock, flags); | 539 | spin_unlock_irqrestore(&crtc->dev->event_lock, flags); |
540 | r = -EBUSY; | 540 | r = -EBUSY; |
541 | goto pflip_cleanup; | 541 | goto vblank_cleanup; |
542 | } | 542 | } |
543 | radeon_crtc->flip_status = RADEON_FLIP_PENDING; | 543 | radeon_crtc->flip_status = RADEON_FLIP_PENDING; |
544 | radeon_crtc->flip_work = work; | 544 | radeon_crtc->flip_work = work; |
@@ -551,6 +551,9 @@ static int radeon_crtc_page_flip(struct drm_crtc *crtc, | |||
551 | queue_work(radeon_crtc->flip_queue, &work->flip_work); | 551 | queue_work(radeon_crtc->flip_queue, &work->flip_work); |
552 | return 0; | 552 | return 0; |
553 | 553 | ||
554 | vblank_cleanup: | ||
555 | drm_vblank_put(crtc->dev, radeon_crtc->crtc_id); | ||
556 | |||
554 | pflip_cleanup: | 557 | pflip_cleanup: |
555 | if (unlikely(radeon_bo_reserve(new_rbo, false) != 0)) { | 558 | if (unlikely(radeon_bo_reserve(new_rbo, false) != 0)) { |
556 | DRM_ERROR("failed to reserve new rbo in error path\n"); | 559 | DRM_ERROR("failed to reserve new rbo in error path\n"); |