On Sun, 7 May 2023 at 17:27, Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxx> Thanks for the patch - looks good. Reviewed-by: Dave Stevenson <dave.stevenson@xxxxxxxxxxxxxxx> > --- > 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 >