public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: Reset vma->mm_list after unbinding
@ 2014-02-25 14:23 Chris Wilson
  2014-02-25 23:38 ` Ben Widawsky
  2014-02-27 14:11 ` Ville Syrjälä
  0 siblings, 2 replies; 6+ messages in thread
From: Chris Wilson @ 2014-02-25 14:23 UTC (permalink / raw)
  To: intel-gfx; +Cc: Ben Widawsky

In place of true activity counting, we walk the list of vma associated
with an object managing each on the vm's active/inactive list everytime
we call move-to-inactive. This depends upon the vma->mm_list being
cleared after unbinding, or else we run into difficulty when tracking
the object in multiple vm's - we see a use-after free and corruption of
the mm_list.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ben Widawsky <ben@bwidawsk.net>
---
 drivers/gpu/drm/i915/i915_gem.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 633a8d56e401..4de984e176f5 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2874,7 +2874,7 @@ int i915_vma_unbind(struct i915_vma *vma)
 
 	i915_gem_gtt_finish_object(obj);
 
-	list_del(&vma->mm_list);
+	list_del_init(&vma->mm_list);
 	if (i915_is_ggtt(vma->vm))
 		obj->map_and_fenceable = false;
 
-- 
1.9.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-03-05 14:15 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-25 14:23 [PATCH] drm/i915: Reset vma->mm_list after unbinding Chris Wilson
2014-02-25 23:38 ` Ben Widawsky
2014-03-05 13:05   ` Chris Wilson
2014-03-05 14:15     ` Daniel Vetter
2014-02-27 14:11 ` Ville Syrjälä
2014-02-27 14:28   ` Chris Wilson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox