summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoroga <oga@openbsd.org>2010-04-16 16:26:02 +0000
committeroga <oga@openbsd.org>2010-04-16 16:26:02 +0000
commitff3ac26d8fe6f996b7190967ea47a4cc60ee755e (patch)
tree24a96d3ea75d682e58a3a58662bd105582b29a02
parentfix types in two error printfs. one of these also had a %d bug no vararg (diff)
downloadwireguard-openbsd-ff3ac26d8fe6f996b7190967ea47a4cc60ee755e.tar.xz
wireguard-openbsd-ff3ac26d8fe6f996b7190967ea47a4cc60ee755e.zip
If we fail to idle the chip in leavvt don't disable the interrupt,
retrying that will hurt.
-rw-r--r--sys/dev/pci/drm/i915_drv.c5
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);
}