|
@@ -2705,11 +2705,14 @@ i915_gem_idle_work_handler(struct work_struct *work)
|
|
|
dev_priv->gt.awake = false;
|
|
|
rearm_hangcheck = false;
|
|
|
|
|
|
+ /* As we have disabled hangcheck, we need to unstick any waiters still
|
|
|
+ * hanging around. However, as we may be racing against the interrupt
|
|
|
+ * handler or the waiters themselves, we skip enabling the fake-irq.
|
|
|
+ */
|
|
|
stuck_engines = intel_kick_waiters(dev_priv);
|
|
|
- if (unlikely(stuck_engines)) {
|
|
|
- DRM_DEBUG_DRIVER("kicked stuck waiters...missed irq\n");
|
|
|
- dev_priv->gpu_error.missed_irq_rings |= stuck_engines;
|
|
|
- }
|
|
|
+ if (unlikely(stuck_engines))
|
|
|
+ DRM_DEBUG_DRIVER("kicked stuck waiters (%x)...missed irq?\n",
|
|
|
+ stuck_engines);
|
|
|
|
|
|
if (INTEL_GEN(dev_priv) >= 6)
|
|
|
gen6_rps_idle(dev_priv);
|