diff options
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/pci/drm/i915_drv.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/dev/pci/drm/i915_drv.c b/sys/dev/pci/drm/i915_drv.c index 58e6e11e0e3..737564eb6aa 100644 --- a/sys/dev/pci/drm/i915_drv.c +++ b/sys/dev/pci/drm/i915_drv.c @@ -3927,10 +3927,12 @@ i915_gem_idle(struct inteldrm_softc *dev_priv) } /* - * If we're wedged, the workq will clear everything, else this will - * empty out the lists for us. + * To idle the gpu, flush anything pending then unbind the whole + * shebang. If we're wedged, assume that the reset workq will clear + * everything out and continue as normal. */ - if ((ret = i915_gem_evict_everything(dev_priv, 1)) != 0 && ret != ENOSPC) { + if ((ret = i915_gem_evict_everything(dev_priv, 1)) != 0 && + ret != ENOSPC && ret != EIO) { DRM_UNLOCK(); return (ret); } |