aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 12775df1bbfd..8f72d0bfa7c5 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -3434,11 +3434,10 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc,
3434 intel_crtc->cursor_bo = bo; 3434 intel_crtc->cursor_bo = bo;
3435 3435
3436 return 0; 3436 return 0;
3437fail:
3438 mutex_lock(&dev->struct_mutex);
3439fail_locked: 3437fail_locked:
3440 drm_gem_object_unreference(bo);
3441 mutex_unlock(&dev->struct_mutex); 3438 mutex_unlock(&dev->struct_mutex);
3439fail:
3440 drm_gem_object_unreference_unlocked(bo);
3442 return ret; 3441 return ret;
3443} 3442}
3444 3443
@@ -4351,9 +4350,7 @@ static void intel_user_framebuffer_destroy(struct drm_framebuffer *fb)
4351 intelfb_remove(dev, fb); 4350 intelfb_remove(dev, fb);
4352 4351
4353 drm_framebuffer_cleanup(fb); 4352 drm_framebuffer_cleanup(fb);
4354 mutex_lock(&dev->struct_mutex); 4353 drm_gem_object_unreference_unlocked(intel_fb->obj);
4355 drm_gem_object_unreference(intel_fb->obj);
4356 mutex_unlock(&dev->struct_mutex);
4357 4354
4358 kfree(intel_fb); 4355 kfree(intel_fb);
4359} 4356}
@@ -4416,9 +4413,7 @@ intel_user_framebuffer_create(struct drm_device *dev,
4416 4413
4417 ret = intel_framebuffer_create(dev, mode_cmd, &fb, obj); 4414 ret = intel_framebuffer_create(dev, mode_cmd, &fb, obj);
4418 if (ret) { 4415 if (ret) {
4419 mutex_lock(&dev->struct_mutex); 4416 drm_gem_object_unreference_unlocked(obj);
4420 drm_gem_object_unreference(obj);
4421 mutex_unlock(&dev->struct_mutex);
4422 return NULL; 4417 return NULL;
4423 } 4418 }
4424 4419