aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index df5a7135c261..68526f467c87 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -135,12 +135,15 @@ i915_gem_create_ioctl(struct drm_device *dev, void *data,
135 return -ENOMEM; 135 return -ENOMEM;
136 136
137 ret = drm_gem_handle_create(file_priv, obj, &handle); 137 ret = drm_gem_handle_create(file_priv, obj, &handle);
138 drm_gem_object_unreference_unlocked(obj); 138 if (ret) {
139 if (ret) 139 drm_gem_object_unreference_unlocked(obj);
140 return ret; 140 return ret;
141 }
141 142
142 args->handle = handle; 143 /* Sink the floating reference from kref_init(handlecount) */
144 drm_gem_object_handle_unreference_unlocked(obj);
143 145
146 args->handle = handle;
144 return 0; 147 return 0;
145} 148}
146 149