Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/stm: Drop explicit drm_mode_config_cleanup call

It's right above the drm_dev_put().

This is made possible by a preceeding patch which added a drmm_
cleanup action to drm_mode_config_init(), hence all we need to do to
ensure that drm_mode_config_cleanup() is run on final drm_device
cleanup is check the new error code for _init().

Aside: Another driver with a bit much devm_kzalloc, which should
probably use drmm_kzalloc instead ...

v2: Explain why this cleanup is possible (Laurent).

v3: Use drmm_mode_config_init() for more clarity (Sam, Thomas)

Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Philippe Cornu <philippe.cornu@st.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Yannick Fertre <yannick.fertre@st.com>
Cc: Philippe Cornu <philippe.cornu@st.com>
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Cc: Vincent Abriou <vincent.abriou@st.com>
Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
Cc: Alexandre Torgue <alexandre.torgue@st.com>
Cc: linux-stm32@st-md-mailman.stormreply.com
Cc: linux-arm-kernel@lists.infradead.org
Link: https://patchwork.freedesktop.org/patch/msgid/20200323144950.3018436-39-daniel.vetter@ffwll.ch

+4 -6
+4 -6
drivers/gpu/drm/stm/drv.c
··· 88 88 89 89 ddev->dev_private = (void *)ldev; 90 90 91 - drm_mode_config_init(ddev); 91 + ret = drmm_mode_config_init(ddev); 92 + if (ret) 93 + return ret; 92 94 93 95 /* 94 96 * set max width and height as default value. ··· 105 103 106 104 ret = ltdc_load(ddev); 107 105 if (ret) 108 - goto err; 106 + return ret; 109 107 110 108 drm_mode_config_reset(ddev); 111 109 drm_kms_helper_poll_init(ddev); ··· 113 111 platform_set_drvdata(pdev, ddev); 114 112 115 113 return 0; 116 - err: 117 - drm_mode_config_cleanup(ddev); 118 - return ret; 119 114 } 120 115 121 116 static void drv_unload(struct drm_device *ddev) ··· 121 122 122 123 drm_kms_helper_poll_fini(ddev); 123 124 ltdc_unload(ddev); 124 - drm_mode_config_cleanup(ddev); 125 125 } 126 126 127 127 static __maybe_unused int drv_suspend(struct device *dev)