diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 490fd302bd1a9676ac3840b513c64a453967763e..82170bcb3bf3d20e8e4023a130c33e9e305d9c36 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -2766,6 +2766,13 @@ i915_gem_idle_work_handler(struct work_struct *work) goto out_rearm; } + /* + * New request retired after this work handler started, extend active + * period until next instance of the work. + */ + if (work_pending(work)) + goto out_unlock; + if (dev_priv->gt.active_requests) goto out_unlock;