[PATCH 52/53] drm/vc4: Convert to platform remove callback returning void
Dave Stevenson
dave.stevenson at raspberrypi.com
Tue May 9 14:32:37 UTC 2023
On Sun, 7 May 2023 at 17:27, Uwe Kleine-König
<u.kleine-koenig at pengutronix.de> wrote:
>
> 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 the vc4 drm drivers from always returning zero in the
> remove callback to the void returning variant.
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
Thanks for the patch - looks good.
Reviewed-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
> ---
> drivers/gpu/drm/vc4/vc4_crtc.c | 5 ++---
> drivers/gpu/drm/vc4/vc4_dpi.c | 5 ++---
> drivers/gpu/drm/vc4/vc4_drv.c | 6 ++----
> drivers/gpu/drm/vc4/vc4_dsi.c | 6 ++----
> drivers/gpu/drm/vc4/vc4_hdmi.c | 5 ++---
> drivers/gpu/drm/vc4/vc4_hvs.c | 5 ++---
> drivers/gpu/drm/vc4/vc4_txp.c | 5 ++---
> drivers/gpu/drm/vc4/vc4_v3d.c | 5 ++---
> drivers/gpu/drm/vc4/vc4_vec.c | 5 ++---
> 9 files changed, 18 insertions(+), 29 deletions(-)
>
> diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c
> index bef9d45ef1df..7610e841ef3c 100644
> --- a/drivers/gpu/drm/vc4/vc4_crtc.c
> +++ b/drivers/gpu/drm/vc4/vc4_crtc.c
> @@ -1450,15 +1450,14 @@ static int vc4_crtc_dev_probe(struct platform_device *pdev)
> return component_add(&pdev->dev, &vc4_crtc_ops);
> }
>
> -static int vc4_crtc_dev_remove(struct platform_device *pdev)
> +static void vc4_crtc_dev_remove(struct platform_device *pdev)
> {
> component_del(&pdev->dev, &vc4_crtc_ops);
> - return 0;
> }
>
> struct platform_driver vc4_crtc_driver = {
> .probe = vc4_crtc_dev_probe,
> - .remove = vc4_crtc_dev_remove,
> + .remove_new = vc4_crtc_dev_remove,
> .driver = {
> .name = "vc4_crtc",
> .of_match_table = vc4_crtc_dt_match,
> diff --git a/drivers/gpu/drm/vc4/vc4_dpi.c b/drivers/gpu/drm/vc4/vc4_dpi.c
> index f518d6e59ed6..e67856ae9d75 100644
> --- a/drivers/gpu/drm/vc4/vc4_dpi.c
> +++ b/drivers/gpu/drm/vc4/vc4_dpi.c
> @@ -391,15 +391,14 @@ static int vc4_dpi_dev_probe(struct platform_device *pdev)
> return component_add(&pdev->dev, &vc4_dpi_ops);
> }
>
> -static int vc4_dpi_dev_remove(struct platform_device *pdev)
> +static void vc4_dpi_dev_remove(struct platform_device *pdev)
> {
> component_del(&pdev->dev, &vc4_dpi_ops);
> - return 0;
> }
>
> struct platform_driver vc4_dpi_driver = {
> .probe = vc4_dpi_dev_probe,
> - .remove = vc4_dpi_dev_remove,
> + .remove_new = vc4_dpi_dev_remove,
> .driver = {
> .name = "vc4_dpi",
> .of_match_table = vc4_dpi_dt_match,
> diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
> index 0ccaee57fe9a..cee41e318bf9 100644
> --- a/drivers/gpu/drm/vc4/vc4_drv.c
> +++ b/drivers/gpu/drm/vc4/vc4_drv.c
> @@ -439,11 +439,9 @@ static int vc4_platform_drm_probe(struct platform_device *pdev)
> return component_master_add_with_match(dev, &vc4_drm_ops, match);
> }
>
> -static int vc4_platform_drm_remove(struct platform_device *pdev)
> +static void vc4_platform_drm_remove(struct platform_device *pdev)
> {
> component_master_del(&pdev->dev, &vc4_drm_ops);
> -
> - return 0;
> }
>
> static const struct of_device_id vc4_of_match[] = {
> @@ -456,7 +454,7 @@ MODULE_DEVICE_TABLE(of, vc4_of_match);
>
> static struct platform_driver vc4_platform_driver = {
> .probe = vc4_platform_drm_probe,
> - .remove = vc4_platform_drm_remove,
> + .remove_new = vc4_platform_drm_remove,
> .driver = {
> .name = "vc4-drm",
> .of_match_table = vc4_of_match,
> diff --git a/drivers/gpu/drm/vc4/vc4_dsi.c b/drivers/gpu/drm/vc4/vc4_dsi.c
> index a5c075f802e4..839d7d682842 100644
> --- a/drivers/gpu/drm/vc4/vc4_dsi.c
> +++ b/drivers/gpu/drm/vc4/vc4_dsi.c
> @@ -1830,20 +1830,18 @@ static int vc4_dsi_dev_probe(struct platform_device *pdev)
> return 0;
> }
>
> -static int vc4_dsi_dev_remove(struct platform_device *pdev)
> +static void vc4_dsi_dev_remove(struct platform_device *pdev)
> {
> struct device *dev = &pdev->dev;
> struct vc4_dsi *dsi = dev_get_drvdata(dev);
>
> mipi_dsi_host_unregister(&dsi->dsi_host);
> vc4_dsi_put(dsi);
> -
> - return 0;
> }
>
> struct platform_driver vc4_dsi_driver = {
> .probe = vc4_dsi_dev_probe,
> - .remove = vc4_dsi_dev_remove,
> + .remove_new = vc4_dsi_dev_remove,
> .driver = {
> .name = "vc4_dsi",
> .of_match_table = vc4_dsi_dt_match,
> diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
> index ea22c9bf223a..0c4aef532521 100644
> --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
> +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
> @@ -3561,10 +3561,9 @@ static int vc4_hdmi_dev_probe(struct platform_device *pdev)
> return component_add(&pdev->dev, &vc4_hdmi_ops);
> }
>
> -static int vc4_hdmi_dev_remove(struct platform_device *pdev)
> +static void vc4_hdmi_dev_remove(struct platform_device *pdev)
> {
> component_del(&pdev->dev, &vc4_hdmi_ops);
> - return 0;
> }
>
> static const struct vc4_hdmi_variant bcm2835_variant = {
> @@ -3660,7 +3659,7 @@ static const struct dev_pm_ops vc4_hdmi_pm_ops = {
>
> struct platform_driver vc4_hdmi_driver = {
> .probe = vc4_hdmi_dev_probe,
> - .remove = vc4_hdmi_dev_remove,
> + .remove_new = vc4_hdmi_dev_remove,
> .driver = {
> .name = "vc4_hdmi",
> .of_match_table = vc4_hdmi_dt_match,
> diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c
> index 4da66ef96783..04af672caacb 100644
> --- a/drivers/gpu/drm/vc4/vc4_hvs.c
> +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
> @@ -1061,10 +1061,9 @@ static int vc4_hvs_dev_probe(struct platform_device *pdev)
> return component_add(&pdev->dev, &vc4_hvs_ops);
> }
>
> -static int vc4_hvs_dev_remove(struct platform_device *pdev)
> +static void vc4_hvs_dev_remove(struct platform_device *pdev)
> {
> component_del(&pdev->dev, &vc4_hvs_ops);
> - return 0;
> }
>
> static const struct of_device_id vc4_hvs_dt_match[] = {
> @@ -1075,7 +1074,7 @@ static const struct of_device_id vc4_hvs_dt_match[] = {
>
> struct platform_driver vc4_hvs_driver = {
> .probe = vc4_hvs_dev_probe,
> - .remove = vc4_hvs_dev_remove,
> + .remove_new = vc4_hvs_dev_remove,
> .driver = {
> .name = "vc4_hvs",
> .of_match_table = vc4_hvs_dt_match,
> diff --git a/drivers/gpu/drm/vc4/vc4_txp.c b/drivers/gpu/drm/vc4/vc4_txp.c
> index ef5cab2a3aa9..8152c8325c13 100644
> --- a/drivers/gpu/drm/vc4/vc4_txp.c
> +++ b/drivers/gpu/drm/vc4/vc4_txp.c
> @@ -577,10 +577,9 @@ static int vc4_txp_probe(struct platform_device *pdev)
> return component_add(&pdev->dev, &vc4_txp_ops);
> }
>
> -static int vc4_txp_remove(struct platform_device *pdev)
> +static void vc4_txp_remove(struct platform_device *pdev)
> {
> component_del(&pdev->dev, &vc4_txp_ops);
> - return 0;
> }
>
> static const struct of_device_id vc4_txp_dt_match[] = {
> @@ -590,7 +589,7 @@ static const struct of_device_id vc4_txp_dt_match[] = {
>
> struct platform_driver vc4_txp_driver = {
> .probe = vc4_txp_probe,
> - .remove = vc4_txp_remove,
> + .remove_new = vc4_txp_remove,
> .driver = {
> .name = "vc4_txp",
> .of_match_table = vc4_txp_dt_match,
> diff --git a/drivers/gpu/drm/vc4/vc4_v3d.c b/drivers/gpu/drm/vc4/vc4_v3d.c
> index 29a664c8bf44..04ac7805e6d5 100644
> --- a/drivers/gpu/drm/vc4/vc4_v3d.c
> +++ b/drivers/gpu/drm/vc4/vc4_v3d.c
> @@ -532,10 +532,9 @@ static int vc4_v3d_dev_probe(struct platform_device *pdev)
> return component_add(&pdev->dev, &vc4_v3d_ops);
> }
>
> -static int vc4_v3d_dev_remove(struct platform_device *pdev)
> +static void vc4_v3d_dev_remove(struct platform_device *pdev)
> {
> component_del(&pdev->dev, &vc4_v3d_ops);
> - return 0;
> }
>
> const struct of_device_id vc4_v3d_dt_match[] = {
> @@ -547,7 +546,7 @@ const struct of_device_id vc4_v3d_dt_match[] = {
>
> struct platform_driver vc4_v3d_driver = {
> .probe = vc4_v3d_dev_probe,
> - .remove = vc4_v3d_dev_remove,
> + .remove_new = vc4_v3d_dev_remove,
> .driver = {
> .name = "vc4_v3d",
> .of_match_table = vc4_v3d_dt_match,
> diff --git a/drivers/gpu/drm/vc4/vc4_vec.c b/drivers/gpu/drm/vc4/vc4_vec.c
> index a3782d05cd66..0bbda1872881 100644
> --- a/drivers/gpu/drm/vc4/vc4_vec.c
> +++ b/drivers/gpu/drm/vc4/vc4_vec.c
> @@ -818,15 +818,14 @@ static int vc4_vec_dev_probe(struct platform_device *pdev)
> return component_add(&pdev->dev, &vc4_vec_ops);
> }
>
> -static int vc4_vec_dev_remove(struct platform_device *pdev)
> +static void vc4_vec_dev_remove(struct platform_device *pdev)
> {
> component_del(&pdev->dev, &vc4_vec_ops);
> - return 0;
> }
>
> struct platform_driver vc4_vec_driver = {
> .probe = vc4_vec_dev_probe,
> - .remove = vc4_vec_dev_remove,
> + .remove_new = vc4_vec_dev_remove,
> .driver = {
> .name = "vc4_vec",
> .of_match_table = vc4_vec_dt_match,
> --
> 2.39.2
>
More information about the dri-devel
mailing list