Revert "drm/i915: Unreference object not handle on creation"
This reverts commit 86f100b136
.
The kref API requires the handlecount to be initialised to one on object
creation (so that kref_get() doesn't complain upon first use) so the
dalliance in the drivers is required in order to sink the initial
floating reference.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: stable@kernel.org
This commit is contained in:
parent
e167976ee7
commit
1dfd9754cd
|
@ -135,12 +135,15 @@ i915_gem_create_ioctl(struct drm_device *dev, void *data,
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
ret = drm_gem_handle_create(file_priv, obj, &handle);
|
ret = drm_gem_handle_create(file_priv, obj, &handle);
|
||||||
drm_gem_object_unreference_unlocked(obj);
|
if (ret) {
|
||||||
if (ret)
|
drm_gem_object_unreference_unlocked(obj);
|
||||||
return ret;
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Sink the floating reference from kref_init(handlecount) */
|
||||||
|
drm_gem_object_handle_unreference_unlocked(obj);
|
||||||
|
|
||||||
args->handle = handle;
|
args->handle = handle;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue