]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Invalidate the relocation presumed_offsets along the slow path
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 15 Jan 2013 16:17:54 +0000 (16:17 +0000)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 16 Jan 2013 09:53:38 +0000 (10:53 +0100)
commit4521124cefa05b2bfbd538364e9669c5446ad520
tree5e1e3182442174e877aefc74241804065b396927
parent2d97c6acff324f863b881bef5b9d50def644fa24
drm/i915: Invalidate the relocation presumed_offsets along the slow path

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 35d73208f454a7fcd09e24fe33ed6fc2b9a1dccf
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=55984
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Daniel Vetter <daniel.vetter@fwll.ch>
Cc: stable@vger.kernel.org
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_gem_execbuffer.c