drm/i915: Flush the freed object queue on device release
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 10 Feb 2017 16:35:23 +0000 (16:35 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 10 Feb 2017 19:10:05 +0000 (19:10 +0000)
As dmabufs may live beyond the PCI device removal, we need to flush the
freed object worker on device release, and include a warning in case
there is a leak.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170210163523.17533-3-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_gem.c

index 306a2fb362a2f965545320b92cff5933ae2f7461..303c079b75e83d1b6fe68eb0e284aa7b6bc48a54 100644 (file)
@@ -4659,7 +4659,9 @@ err_out:
 
 void i915_gem_load_cleanup(struct drm_i915_private *dev_priv)
 {
+       i915_gem_drain_freed_objects(dev_priv);
        WARN_ON(!llist_empty(&dev_priv->mm.free_list));
+       WARN_ON(dev_priv->mm.object_count);
 
        mutex_lock(&dev_priv->drm.struct_mutex);
        i915_gem_timeline_fini(&dev_priv->gt.global_timeline);