drm/i915: Immediately discard any backing storage for uneeded objects
authorChris Wilson <chris@chris-wilson.co.uk>
Sun, 20 Sep 2009 22:13:10 +0000 (23:13 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 23 Sep 2009 00:10:37 +0000 (01:10 +0100)
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/i915_gem.c

index c69f1fa..62ba9c1 100644 (file)
@@ -4110,6 +4110,11 @@ i915_gem_madvise_ioctl(struct drm_device *dev, void *data,
        obj_priv->madv = args->madv;
        args->retained = obj_priv->gtt_space != NULL;
 
+       /* if the object is no longer bound, discard its backing storage */
+       if (i915_gem_object_is_purgeable(obj_priv) &&
+           obj_priv->gtt_space == NULL)
+               i915_gem_object_truncate(obj);
+
        drm_gem_object_unreference(obj);
        mutex_unlock(&dev->struct_mutex);