Uwe Kleine-König
2023-Nov-02 16:56 UTC
[Nouveau] [PATCH v3 00/16] drm: Convert to platform remove callback returning void
Hello, this series converts all platform drivers below drivers/gpu/drm to use .remove_new(). It starts with a fix for a problem that potentially might crash the kernel that I stumbled over while implementing the conversion. Some of the conversion patches following this fix were already send in earlier series: https://lore.kernel.org/dri-devel/20230801110239.831099-1-u.kleine-koenig at pengutronix.de https://lore.kernel.org/dri-devel/20230318190804.234610-1-u.kleine-koenig at pengutronix.de and three patches (bridge/tpd12s015, exynos + tilcdc) are new. Parts of the above series were picked up, the patches resend here are not. See commit 5c5a7680e67b ("platform: Provide a remove callback that returns no value") for an extended explanation and the eventual goal. Compared to the earlier submissions this patch series is rebased to today's drm-misc-next. Otherwise there is no relevant change. Best regards Uwe Uwe Kleine-K?nig (16): drm/bridge: tpd12s015: Drop buggy __exit annotation for remove function drm/arcpgu: Convert to platform remove callback returning void drm/armada: Convert to platform remove callback returning void drm/bridge: cdns-mhdp8546: Improve error reporting in remove callback drm/bridge: cdns-mhdp8546: Convert to platform remove callback returning void drm/bridge: tpd12s015: Convert to platform remove callback returning void drm/etnaviv: Convert to platform remove callback returning void drm/exynos: Convert to platform remove callback returning void drm/imx/dcss: Convert to platform remove callback returning void drm/imx: lcdc: Convert to platform remove callback returning void drm/kmb: Convert to platform remove callback returning void drm/mediatek: Convert to platform remove callback returning void drm/meson: Convert to platform remove callback returning void drm/nouveau: Convert to platform remove callback returning void drm/sprd: Convert to platform remove callback returning void drm/tilcdc: Convert to platform remove callback returning void drivers/gpu/drm/armada/armada_crtc.c | 5 ++--- drivers/gpu/drm/armada/armada_drv.c | 5 ++--- .../drm/bridge/cadence/cdns-mhdp8546-core.c | 22 +++++++++---------- drivers/gpu/drm/bridge/ti-tpd12s015.c | 6 ++--- drivers/gpu/drm/etnaviv/etnaviv_drv.c | 6 ++--- drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 5 ++--- drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 6 ++--- drivers/gpu/drm/exynos/exynos7_drm_decon.c | 6 ++--- drivers/gpu/drm/exynos/exynos_dp.c | 6 ++--- drivers/gpu/drm/exynos/exynos_drm_drv.c | 5 ++--- drivers/gpu/drm/exynos/exynos_drm_fimc.c | 6 ++--- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 6 ++--- drivers/gpu/drm/exynos/exynos_drm_g2d.c | 6 ++--- drivers/gpu/drm/exynos/exynos_drm_gsc.c | 6 ++--- drivers/gpu/drm/exynos/exynos_drm_mic.c | 6 ++--- drivers/gpu/drm/exynos/exynos_drm_rotator.c | 6 ++--- drivers/gpu/drm/exynos/exynos_drm_scaler.c | 6 ++--- drivers/gpu/drm/exynos/exynos_drm_vidi.c | 6 ++--- drivers/gpu/drm/exynos/exynos_hdmi.c | 6 ++--- drivers/gpu/drm/exynos/exynos_mixer.c | 6 ++--- drivers/gpu/drm/imx/dcss/dcss-drv.c | 6 ++--- drivers/gpu/drm/imx/lcdc/imx-lcdc.c | 6 ++--- drivers/gpu/drm/kmb/kmb_drv.c | 5 ++--- .../gpu/drm/mediatek/mtk_disp_ovl_adaptor.c | 5 ++--- drivers/gpu/drm/mediatek/mtk_ethdr.c | 5 ++--- drivers/gpu/drm/meson/meson_dw_mipi_dsi.c | 6 ++--- drivers/gpu/drm/nouveau/nouveau_platform.c | 5 ++--- drivers/gpu/drm/sprd/sprd_dpu.c | 6 ++--- drivers/gpu/drm/sprd/sprd_drm.c | 5 ++--- drivers/gpu/drm/sprd/sprd_dsi.c | 6 ++--- drivers/gpu/drm/tilcdc/tilcdc_drv.c | 9 ++++---- drivers/gpu/drm/tiny/arcpgu.c | 6 ++--- 32 files changed, 74 insertions(+), 128 deletions(-) base-commit: 6fd9487147c4f18ad77eea00bd8c9189eec74a3e -- 2.42.0
Uwe Kleine-König
2023-Nov-02 16:56 UTC
[Nouveau] [PATCH v3 14/16] drm/nouveau: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes many driver authors wrongly assume it's possible to do error handling by returning an error code. However the value returned is (mostly) ignored and this typically results in resource leaks. To improve here there is a quest to make the remove callback return void. In the first step of this quest all drivers are converted to .remove_new() which already returns void. Trivially convert this driver from always returning zero in the remove callback to the void returning variant. Reviewed-by: Thomas Zimmermann <tzimmermann at suse.de> Reviewed-by: Jyri Sarha <jyri.sarha at iki.fi> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig at pengutronix.de> --- drivers/gpu/drm/nouveau/nouveau_platform.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_platform.c b/drivers/gpu/drm/nouveau/nouveau_platform.c index 23cd43a7fd19..bf2dc7567ea4 100644 --- a/drivers/gpu/drm/nouveau/nouveau_platform.c +++ b/drivers/gpu/drm/nouveau/nouveau_platform.c @@ -43,11 +43,10 @@ static int nouveau_platform_probe(struct platform_device *pdev) return 0; } -static int nouveau_platform_remove(struct platform_device *pdev) +static void nouveau_platform_remove(struct platform_device *pdev) { struct drm_device *dev = platform_get_drvdata(pdev); nouveau_drm_device_remove(dev); - return 0; } #if IS_ENABLED(CONFIG_OF) @@ -93,5 +92,5 @@ struct platform_driver nouveau_platform_driver = { .of_match_table = of_match_ptr(nouveau_platform_match), }, .probe = nouveau_platform_probe, - .remove = nouveau_platform_remove, + .remove_new = nouveau_platform_remove, }; -- 2.42.0
Uwe Kleine-König
2023-Nov-20 12:05 UTC
[Nouveau] [PATCH v3 00/16] drm: Convert to platform remove callback returning void
[Dropped a few people from To that resulted in bounces before.] On Thu, Nov 02, 2023 at 05:56:41PM +0100, Uwe Kleine-K?nig wrote:> Hello, > > this series converts all platform drivers below drivers/gpu/drm to use > .remove_new(). It starts with a fix for a problem that potentially might > crash the kernel that I stumbled over while implementing the conversion. > > Some of the conversion patches following this fix were already send in > earlier series: > > https://lore.kernel.org/dri-devel/20230801110239.831099-1-u.kleine-koenig at pengutronix.de > https://lore.kernel.org/dri-devel/20230318190804.234610-1-u.kleine-koenig at pengutronix.de > > and three patches (bridge/tpd12s015, exynos + tilcdc) are new. Parts of > the above series were picked up, the patches resend here are not.Apart from a Reviewed-by: by Toni Valkeinen for patch #16 and Inki Dae who wrote to have taken patch #8 (but that didn't appear in neither next nor drm-misc-next yet). Also in v2 they didn't result in euphoric replies. Can someone who cares about drm as a whole please care for this series apply it? Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | https://www.pengutronix.de/ | -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: not available URL: <https://lists.freedesktop.org/archives/nouveau/attachments/20231120/640f5ce2/attachment.sig>