drm/i915: Immediately discard any backing storage for uneeded objects

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

+5
+5
drivers/gpu/drm/i915/i915_gem.c
··· 4110 obj_priv->madv = args->madv; 4111 args->retained = obj_priv->gtt_space != NULL; 4112 4113 drm_gem_object_unreference(obj); 4114 mutex_unlock(&dev->struct_mutex); 4115
··· 4110 obj_priv->madv = args->madv; 4111 args->retained = obj_priv->gtt_space != NULL; 4112 4113 + /* if the object is no longer bound, discard its backing storage */ 4114 + if (i915_gem_object_is_purgeable(obj_priv) && 4115 + obj_priv->gtt_space == NULL) 4116 + i915_gem_object_truncate(obj); 4117 + 4118 drm_gem_object_unreference(obj); 4119 mutex_unlock(&dev->struct_mutex); 4120