diff options
author | 2020-02-07 11:02:13 +0000 | |
---|---|---|
committer | 2020-02-07 13:07:28 +0000 | |
commit | 793c226173675ea7f8591d22803a1432e2b724e0 (patch) | |
tree | 1e7773a8568888c759ae83b3976f5a220a109ebf /drivers/gpu/drm/i915/i915_scheduler.c | |
parent | Revert "drm/i915: Don't use VBT for detecting DPCD backlight controls" (diff) | |
download | wireguard-linux-793c226173675ea7f8591d22803a1432e2b724e0.tar.xz wireguard-linux-793c226173675ea7f8591d22803a1432e2b724e0.zip |
drm/i915/gt: Protect execlists_hold/unhold from new waiters
As we may add new waiters to a request as it is being run, we need to
mark the list iteration as being safe for concurrent addition.
v2: Mika spotted that we used the same trick for signalers_list, so warn
the compiler about the lockless walk there as well.
Fixes: 32ff621fd744 ("drm/i915/gt: Allow temporary suspension of inflight requests")
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: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200207110213.2734386-1-chris@chris-wilson.co.uk
Diffstat (limited to 'drivers/gpu/drm/i915/i915_scheduler.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_scheduler.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_scheduler.c b/drivers/gpu/drm/i915/i915_scheduler.c index 34b654b4e58a..e19a37a83397 100644 --- a/drivers/gpu/drm/i915/i915_scheduler.c +++ b/drivers/gpu/drm/i915/i915_scheduler.c @@ -433,7 +433,7 @@ bool __i915_sched_node_add_dependency(struct i915_sched_node *node, node->flags |= I915_SCHED_HAS_SEMAPHORE_CHAIN; /* All set, now publish. Beware the lockless walkers. */ - list_add(&dep->signal_link, &node->signalers_list); + list_add_rcu(&dep->signal_link, &node->signalers_list); list_add_rcu(&dep->wait_link, &signal->waiters_list); /* |