drm/i915: Cleanup modesetting on load-error path
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 10 Jul 2018 09:44:21 +0000 (10:44 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 10 Jul 2018 13:09:18 +0000 (14:09 +0100)
After handling a critical failure initialising GEM we need to unwind the
modesetting setup.

Testcase: igt/drv_module_reload/basic-reload-inject
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20180710094421.16223-2-chris@chris-wilson.co.uk
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
drivers/gpu/drm/i915/i915_drv.c

index c2b9a4a..f26cc72 100644 (file)
@@ -682,7 +682,7 @@ static int i915_load_modeset_init(struct drm_device *dev)
 
        ret = i915_gem_init(dev_priv);
        if (ret)
-               goto cleanup_irq;
+               goto cleanup_modeset;
 
        intel_setup_overlay(dev_priv);
 
@@ -702,6 +702,8 @@ cleanup_gem:
        if (i915_gem_suspend(dev_priv))
                DRM_ERROR("failed to idle hardware; continuing to unload!\n");
        i915_gem_fini(dev_priv);
+cleanup_modeset:
+       intel_modeset_cleanup(dev);
 cleanup_irq:
        drm_irq_uninstall(dev);
        intel_teardown_gmbus(dev_priv);