|
@@ -1068,14 +1068,18 @@ int intel_overlay_put_image(struct drm_device *dev, void *data,
|
|
|
|
|
|
drmmode_obj = drm_mode_object_find(dev, put_image_rec->crtc_id,
|
|
|
DRM_MODE_OBJECT_CRTC);
|
|
|
- if (!drmmode_obj)
|
|
|
- return -ENOENT;
|
|
|
+ if (!drmmode_obj) {
|
|
|
+ ret = -ENOENT;
|
|
|
+ goto out_free;
|
|
|
+ }
|
|
|
crtc = to_intel_crtc(obj_to_crtc(drmmode_obj));
|
|
|
|
|
|
new_bo = drm_gem_object_lookup(dev, file_priv,
|
|
|
put_image_rec->bo_handle);
|
|
|
- if (!new_bo)
|
|
|
- return -ENOENT;
|
|
|
+ if (!new_bo) {
|
|
|
+ ret = -ENOENT;
|
|
|
+ goto out_free;
|
|
|
+ }
|
|
|
|
|
|
mutex_lock(&dev->mode_config.mutex);
|
|
|
mutex_lock(&dev->struct_mutex);
|
|
@@ -1165,6 +1169,7 @@ out_unlock:
|
|
|
mutex_unlock(&dev->struct_mutex);
|
|
|
mutex_unlock(&dev->mode_config.mutex);
|
|
|
drm_gem_object_unreference_unlocked(new_bo);
|
|
|
+out_free:
|
|
|
kfree(params);
|
|
|
|
|
|
return ret;
|