drm/i915: refleak along pin() error path.
authorChris Wilson <chris@chris-wilson.co.uk>
Sun, 8 Feb 2009 19:08:04 +0000 (19:08 +0000)
committerDave Airlie <airlied@redhat.com>
Fri, 20 Feb 2009 02:21:09 +0000 (12:21 +1000)
A missing unreference if the user calls pin() a second time on a pinned
buffer.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Dave Airlie <airlied@linux.ie>
drivers/gpu/drm/i915/i915_gem.c

index b79ced8..55f4c06 100644 (file)
@@ -2755,6 +2755,7 @@ i915_gem_pin_ioctl(struct drm_device *dev, void *data,
        if (obj_priv->pin_filp != NULL && obj_priv->pin_filp != file_priv) {
                DRM_ERROR("Already pinned in i915_gem_pin_ioctl(): %d\n",
                          args->handle);
+               drm_gem_object_unreference(obj);
                mutex_unlock(&dev->struct_mutex);
                return -EINVAL;
        }