Browse Source

drm/i915: Flush the freed object queue on device release

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
Chris Wilson 8 years ago
parent
commit
c4d4c1c66b
1 changed files with 2 additions and 0 deletions
  1. 2 0
      drivers/gpu/drm/i915/i915_gem.c

+ 2 - 0
drivers/gpu/drm/i915/i915_gem.c

@@ -4659,7 +4659,9 @@ err_out:
 
 
 void i915_gem_load_cleanup(struct drm_i915_private *dev_priv)
 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(!llist_empty(&dev_priv->mm.free_list));
+	WARN_ON(dev_priv->mm.object_count);
 
 
 	mutex_lock(&dev_priv->drm.struct_mutex);
 	mutex_lock(&dev_priv->drm.struct_mutex);
 	i915_gem_timeline_fini(&dev_priv->gt.global_timeline);
 	i915_gem_timeline_fini(&dev_priv->gt.global_timeline);