Otherwise we end up tearing down fences when e.g. the client quits
way too early. Might or might not fix a fence pin_count BUG Ville has
reported.

Cc: Ville Syrjälä <ville.syrj...@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vet...@ffwll.ch>
---
 drivers/gpu/drm/i915/i915_gem.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 9559d33cd94b..1c118ade031b 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2779,12 +2779,14 @@ int i915_vma_unbind(struct i915_vma *vma)
         * cause memory corruption through use-after-free.
         */
 
-       i915_gem_object_finish_gtt(obj);
+       if (i915_is_ggtt(vma->vm)) {
+               i915_gem_object_finish_gtt(obj);
 
-       /* release the fence reg _after_ flushing */
-       ret = i915_gem_object_put_fence(obj);
-       if (ret)
-               return ret;
+               /* release the fence reg _after_ flushing */
+               ret = i915_gem_object_put_fence(obj);
+               if (ret)
+                       return ret;
+       }
 
        trace_i915_vma_unbind(vma);
 
-- 
1.8.5.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to