• Chris Wilson's avatar
    drm/i915: Prevent double unref following alloc failure during execbuffer · 9ae9ab52
    Chris Wilson authored
    Whilst looking up the objects required for an execbuffer, an untimely
    allocation failure in creating the vma results in the object being
    unreferenced from two lists. The ownership during the lookup is meant to
    be moved from the list of objects being looked to the vma, and this
    double unreference upon error results in a use-after-free.
    
    Fixes regression from
    commit 27173f1f
    Author: Ben Widawsky <ben@bwidawsk.net>
    Date:   Wed Aug 14 11:38:36 2013 +0200
    
        drm/i915: Convert execbuf code to use vmas
    
    Based on the fix by Ben Widawsky.
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Cc: Ben Widawsky <ben@bwidawsk.net>
    Cc: stable@vger.kernel.org
    [danvet: Bikeshed the crucial comment above the ownership transfer as
    discussed on irc.]
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    9ae9ab52
i915_gem_execbuffer.c 36.4 KB