summaryrefslogtreecommitdiffstats
path: root/kernel/relay.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2017-03-15 22:07:23 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2017-03-15 22:45:38 +0100
commit429732e860fda07fc1bb96fe23c43146c27e08e0 (patch)
tree19da7b56432bddd155b8df604b14244facdbde45 /kernel/relay.c
parentdrm/i915/breadcrumbs: Use booleans for intel_breadcrumbs_busy() (diff)
downloadlinux-429732e860fda07fc1bb96fe23c43146c27e08e0.tar.xz
linux-429732e860fda07fc1bb96fe23c43146c27e08e0.zip
drm/i915/breadcrumbs: Update bottom-half before marking as complete
When adding a new request to the breadcrumb rbtree, we mark all those requests inside the rbtree that are already completed as complete. This wakes those waiters up and allows them to skip the spinlock before returning to userspace. If one of those is the current bottom-half and allocated its intel_wait on the stack, it may then overwrite the b->irq_wait upon exiting i915_wait_request() just as the interrupt handler dereferences it. Fixes: 56299fb7d904 ("drm/i915: Signal first fence from irq handler if complete") Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20170315210726.12095-2-chris@chris-wilson.co.uk
Diffstat (limited to 'kernel/relay.c')
0 files changed, 0 insertions, 0 deletions