[Intel-gfx] drm/i915: Switch eviction code to use vmas

Chris Wilson chris at chris-wilson.co.uk
Mon Aug 19 09:38:08 CEST 2013


On Mon, Aug 19, 2013 at 09:59:14AM +0300, Dan Carpenter wrote:
> Hello Ben Widawsky,
> 
> Here is another use after free warning.  It's some new static checker
> stuff that I haven't pushed because it has lots of false postives.
> 
> The patch f7795b1d0b47: "drm/i915: Switch eviction code to use vmas" 
> from Aug 14, 2013, leads to the following warning:
> "drivers/gpu/drm/i915/i915_gem_evict.c:145 i915_gem_evict_something()
> 	 warn: 'vma' was already freed."
> 
> 
> drivers/gpu/drm/i915/i915_gem_evict.c
>    137          /* Unbinding will emit any required flushes */
>    138          while (!list_empty(&eviction_list)) {
>    139                  vma = list_first_entry(&eviction_list,
>    140                                         struct i915_vma,
>    141                                         exec_list);
>    142                  if (ret == 0)
>    143                          ret = i915_vma_unbind(vma);
>                                       ^^^^^^^^^^^^^^^^^^^^
> This often frees the "vma".
> 
>    144  
>    145                  list_del_init(&vma->exec_list);
>                                       ^^^^^^^^^^^^^^^
> Dereference.
> 
>    146                  drm_gem_object_unreference(&vma->obj->base);
>    147          }

Correct. Patch is en route already, thanks.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre



More information about the Intel-gfx mailing list