• Chris Wilson's avatar
    drm/i915: Invalidate the relocation presumed_offsets along the slow path · 262b6d36
    Chris Wilson authored
    In the slow path, we are forced to copy the relocations prior to
    acquiring the struct mutex in order to handle pagefaults. We forgo
    copying the new offsets back into the relocation entries in order to
    prevent a recursive locking bug should we trigger a pagefault whilst
    holding the mutex for the reservations of the execbuffer. Therefore, we
    need to reset the presumed_offsets just in case the objects are rebound
    back into their old locations after relocating for this exexbuffer - if
    that were to happen we would assume the relocations were valid and leave
    the actual pointers to the kernels dangling, instant hang.
    
    Fixes regression from commit bcf50e27
    Author: Chris Wilson <chris@chris-wilson.co.uk>
    Date:   Sun Nov 21 22:07:12 2010 +0000
    
        drm/i915: Handle pagefaults in execbuffer user relocations
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=55984Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Cc: Daniel Vetter <daniel.vetter@fwll.ch>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    262b6d36
i915_gem_execbuffer.c 32.4 KB