diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 6ebd21b..c97aba0 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -85,7 +85,11 @@ i915_gem_init_ioctl(struct drm_device *dev, void *data, mutex_lock(&dev->struct_mutex); ret = i915_gem_do_init(dev, args->gtt_start, args->gtt_end); mutex_unlock(&dev->struct_mutex); + if (ret) + goto out; + ret = drm_irq_install(dev); +out: return ret; } @@ -3238,8 +3242,6 @@ i915_gem_entervt_ioctl(struct drm_device *dev, void *data, BUG_ON(!list_empty(&dev_priv->mm.request_list)); mutex_unlock(&dev->struct_mutex); - drm_irq_install(dev); - return 0; } @@ -3254,7 +3256,6 @@ i915_gem_leavevt_ioctl(struct drm_device *dev, void *data, return 0; ret = i915_gem_idle(dev); - drm_irq_uninstall(dev); io_mapping_free(dev_priv->mm.gtt_mapping); return ret;