]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
drm/drv: propagate errors from drm_modeset_register_all()
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Sat, 2 Dec 2023 22:55:52 +0000 (01:55 +0300)
committerMaxime Ripard <mripard@kernel.org>
Mon, 4 Dec 2023 08:42:32 +0000 (09:42 +0100)
In case the drm_modeset_register_all() function fails, its error code
will be ignored. Instead make the drm_dev_register() bail out in case of
such an error.

Fixes: 79190ea2658a ("drm: Add callbacks for late registering")
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Maxime Ripard <mripard@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20231202225552.1283638-1-dmitry.baryshkov@linaro.org
drivers/gpu/drm/drm_drv.c

index 535f16e7882e706b1e0573345b58711b7f6f2d94..3c835c99daadd4e6978042edeb533906a3631787 100644 (file)
@@ -949,8 +949,11 @@ int drm_dev_register(struct drm_device *dev, unsigned long flags)
                        goto err_minors;
        }
 
-       if (drm_core_check_feature(dev, DRIVER_MODESET))
-               drm_modeset_register_all(dev);
+       if (drm_core_check_feature(dev, DRIVER_MODESET)) {
+               ret = drm_modeset_register_all(dev);
+               if (ret)
+                       goto err_unload;
+       }
 
        DRM_INFO("Initialized %s %d.%d.%d %s for %s on minor %d\n",
                 driver->name, driver->major, driver->minor,
@@ -960,6 +963,9 @@ int drm_dev_register(struct drm_device *dev, unsigned long flags)
 
        goto out_unlock;
 
+err_unload:
+       if (dev->driver->unload)
+               dev->driver->unload(dev);
 err_minors:
        remove_compat_control_link(dev);
        drm_minor_unregister(dev, DRM_MINOR_ACCEL);