drm/i915: Discard objects from mm global_list after being shrunk
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 1 Nov 2016 08:48:42 +0000 (08:48 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 1 Nov 2016 09:30:09 +0000 (09:30 +0000)
In the shrinker, we can safely remove an empty object (obj->mm.pages ==
NULL) after having discarded the pages because we are holding the
struct_mutex.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20161101084843.3961-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_gem_shrinker.c

index 0daa09cabbccddc4ccfad4e17cd6d075731f3a21..9ace5f9f53172dcc447236c2f3d54e4574d873bc 100644 (file)
@@ -228,6 +228,7 @@ i915_gem_shrink(struct drm_i915_private *dev_priv,
                                                  SINGLE_DEPTH_NESTING);
                                if (!obj->mm.pages) {
                                        __i915_gem_object_invalidate(obj);
+                                       list_del_init(&obj->global_list);
                                        count += obj->base.size >> PAGE_SHIFT;
                                }
                                mutex_unlock(&obj->mm.lock);