drm/i915: Fix object refcount leak on mmappable size limit error path.
authorEric Anholt <eric@anholt.net>
Tue, 1 Nov 2011 06:16:21 +0000 (23:16 -0700)
committerKeith Packard <keithp@keithp.com>
Tue, 1 Nov 2011 16:15:17 +0000 (09:15 -0700)
I've been seeing memory leaks on my system in the form of large
(300-400MB) GEM objects created by now-dead processes laying around
clogging up memory.  I usually notice when it gets to about 1.2GB of
them.  Hopefully this clears up the issue, but I just found this bug
by inspection.

Signed-off-by: Eric Anholt <eric@anholt.net>
Cc: stable@kernel.org
Signed-off-by: Keith Packard <keithp@keithp.com>
drivers/gpu/drm/i915/i915_gem.c

index 6651c36b6e8a16a59231fafb83d24709732a7b7f..d18b07adcffa3779fb8f6ba9090e5c2f9c279d66 100644 (file)
@@ -1396,7 +1396,7 @@ i915_gem_mmap_gtt(struct drm_file *file,
 
        if (obj->base.size > dev_priv->mm.gtt_mappable_end) {
                ret = -E2BIG;
-               goto unlock;
+               goto out;
        }
 
        if (obj->madv != I915_MADV_WILLNEED) {