From: Chris Wilson Date: Wed, 14 Dec 2011 08:20:10 +0000 (+0000) Subject: intel: Reset vma list upon purge X-Git-Tag: submit/1.0/20121108.012404~106 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0ab2251b70d49a294d24f3ef54982e95226c104a;p=profile%2Fivi%2Flibdrm.git intel: Reset vma list upon purge During free we unconditionally delete the bo from the vma cache. This relies on the its list member being kept in a sane state. This fails after the object is purged, as the purge operation performs a pure deletion and doesn't reset the list member, leaving a pair of dangling pointers. Signed-off-by: Chris Wilson --- diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c index 19441f3..eb9dd32 100644 --- a/intel/intel_bufmgr_gem.c +++ b/intel/intel_bufmgr_gem.c @@ -958,7 +958,7 @@ static void drm_intel_gem_bo_purge_vma_cache(drm_intel_bufmgr_gem *bufmgr_gem) bufmgr_gem->vma_cache.next, vma_list); assert(bo_gem->map_count == 0); - DRMLISTDEL(&bo_gem->vma_list); + DRMLISTDELINIT(&bo_gem->vma_list); if (bo_gem->mem_virtual) { munmap(bo_gem->mem_virtual, bo_gem->bo.size);