drm/i915: Serialise i915_active_wait() with its retirement
As the i915_active.retire() may be running on another CPU as we detect that the i915_active is idle, we may not wait for the retirement itself. Wait for the remote callback by waiting for the retirement worker. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=112424 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20191202140133.2444217-2-chris@chris-wilson.co.uk
This commit is contained in:
parent
ae30300490
commit
e1cda6a529
|
@ -473,6 +473,7 @@ int i915_active_wait(struct i915_active *ref)
|
||||||
if (wait_var_event_interruptible(ref, i915_active_is_idle(ref)))
|
if (wait_var_event_interruptible(ref, i915_active_is_idle(ref)))
|
||||||
return -EINTR;
|
return -EINTR;
|
||||||
|
|
||||||
|
flush_work(&ref->work);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue