diff options
author | Owain Ainsworth <oga@cvs.openbsd.org> | 2010-04-16 16:26:03 +0000 |
---|---|---|
committer | Owain Ainsworth <oga@cvs.openbsd.org> | 2010-04-16 16:26:03 +0000 |
commit | 56298d6a3015debdb37655367774bafa2e2519ac (patch) | |
tree | b28010d3a064dbdd0d638bdd6358b3c6da9566a1 /sys/dev | |
parent | 7ed10938f665257aae0fa1c61661c9b31f6508b3 (diff) |
If we fail to idle the chip in leavvt don't disable the interrupt,
retrying that will hurt.
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/pci/drm/i915_drv.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/dev/pci/drm/i915_drv.c b/sys/dev/pci/drm/i915_drv.c index 5d1888635bc..fefd718aeb6 100644 --- a/sys/dev/pci/drm/i915_drv.c +++ b/sys/dev/pci/drm/i915_drv.c @@ -3727,8 +3727,9 @@ i915_gem_leavevt_ioctl(struct drm_device *dev, void *data, struct drm_i915_private *dev_priv = dev->dev_private; int ret; - ret = i915_gem_idle(dev_priv); - drm_irq_uninstall(dev); + /* don't unistall if we fail, repeat calls on failure will screw us */ + if ((ret = i915_gem_idle(dev_priv)) == 0) + drm_irq_uninstall(dev); return (ret); } |