forked from Minki/linux
drm/i915: Don't skip request retirement if the active list is empty
Apparently we can have requests even if though the active list is empty, so do the request retirement regardless of whether there's anything on the active list. The way it happened here is that during suspend intel_ring_idle() notices the olr hanging around and then proceeds to get rid of it by adding a request. However since there was nothing on the active lists i915_gem_retire_requests() didn't clean those up, and so the idle work never runs, and we leave the GPU "busy" during suspend resulting in a WARN later. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: stable@vger.kernel.org Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
parent
e058c945e0
commit
0aedb16265
@ -2656,9 +2656,6 @@ void i915_gem_reset(struct drm_device *dev)
|
|||||||
void
|
void
|
||||||
i915_gem_retire_requests_ring(struct intel_engine_cs *ring)
|
i915_gem_retire_requests_ring(struct intel_engine_cs *ring)
|
||||||
{
|
{
|
||||||
if (list_empty(&ring->request_list))
|
|
||||||
return;
|
|
||||||
|
|
||||||
WARN_ON(i915_verify_lists(ring->dev));
|
WARN_ON(i915_verify_lists(ring->dev));
|
||||||
|
|
||||||
/* Retire requests first as we use it above for the early return.
|
/* Retire requests first as we use it above for the early return.
|
||||||
|
Loading…
Reference in New Issue
Block a user