drm/fbdev-generic: Minimize hotplug error handling
authorThomas Zimmermann <tzimmermann@suse.de>
Wed, 25 Jan 2023 20:04:12 +0000 (21:04 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Thu, 26 Jan 2023 07:52:33 +0000 (08:52 +0100)
Call drm_fb_helper_fini() in the generic-fbdev hotplug helper
to revert the effects of drm_fb_helper_init(). No full cleanup
is required.

v3:
* fix error in commit message (Javier)

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230125200415.14123-8-tzimmermann@suse.de
drivers/gpu/drm/drm_fbdev_generic.c

index 6ae0140..dd8be5e 100644 (file)
@@ -387,25 +387,21 @@ static int drm_fbdev_client_hotplug(struct drm_client_dev *client)
 
        ret = drm_fb_helper_init(dev, fb_helper);
        if (ret)
-               goto err;
+               goto err_drm_err;
 
        if (!drm_drv_uses_atomic_modeset(dev))
                drm_helper_disable_unused_functions(dev);
 
        ret = drm_fb_helper_initial_config(fb_helper);
        if (ret)
-               goto err_cleanup;
+               goto err_drm_fb_helper_fini;
 
        return 0;
 
-err_cleanup:
-       drm_fbdev_cleanup(fb_helper);
-err:
-       fb_helper->dev = NULL;
-       fb_helper->info = NULL;
-
+err_drm_fb_helper_fini:
+       drm_fb_helper_fini(fb_helper);
+err_drm_err:
        drm_err(dev, "fbdev: Failed to setup generic emulation (ret=%d)\n", ret);
-
        return ret;
 }