drm/i915: Keep engine alive as we retire the context
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 18 Jun 2019 07:41:28 +0000 (08:41 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 18 Jun 2019 14:14:22 +0000 (15:14 +0100)
commit7009db1475e9e92c823b60c2a9c1e5a3222699f0
treedf8d8a9145c43cc87abe98e131ff9bb8338b9f56
parent4951dc0178ba144619e9c20ed71f7ff006282bbf
drm/i915: Keep engine alive as we retire the context

Though we pin the context first before taking the pm wakeref, during
retire we need to unpin before dropping the pm wakeref (breaking the
"natural" onion). During the unpin, we may need to attach a cleanup
operation on to the engine wakeref, ergo we want to keep the engine
awake until after the unpin.

v2: Push the engine wakeref into the barrier so we keep the onion unwind
ordering in the request itself

Fixes: ce476c80b8bf ("drm/i915: Keep contexts pinned until after the next kernel context switch")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190618074153.16055-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_active.c