Re: [PATCH] drm: exynos: dsi: Convert to platform remove callback returning void

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2023년 9월 19일 (화) 오후 7:40, Uwe Kleine-König
<u.kleine-koenig@xxxxxxxxxxxxxx>님이 작성:
>
> 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 ignored (apart
> from emitting a warning) 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. Eventually after all drivers
> are converted, .remove_new() is renamed to .remove().
>
> samsung_dsim_remove() returned 0 unconditionally. Make it return void
> instead to convert the two related platform drivers to use
> .remove_new().
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>

It'd be better to go to drm-misc.

Reviewed-by: Inki Dae <inki.dae@xxxxxxxxxxx>
Acked-by: Inki Dae <inki.dae@xxxxxxxxxxx>

Thanks,
Inki Dae

> ---
>  drivers/gpu/drm/bridge/samsung-dsim.c   | 6 ++----
>  drivers/gpu/drm/exynos/exynos_drm_dsi.c | 2 +-
>  include/drm/bridge/samsung-dsim.h       | 2 +-
>  3 files changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c
> index b1df91e37b1b..2b56a5bfe273 100644
> --- a/drivers/gpu/drm/bridge/samsung-dsim.c
> +++ b/drivers/gpu/drm/bridge/samsung-dsim.c
> @@ -1998,7 +1998,7 @@ int samsung_dsim_probe(struct platform_device *pdev)
>  }
>  EXPORT_SYMBOL_GPL(samsung_dsim_probe);
>
> -int samsung_dsim_remove(struct platform_device *pdev)
> +void samsung_dsim_remove(struct platform_device *pdev)
>  {
>         struct samsung_dsim *dsi = platform_get_drvdata(pdev);
>
> @@ -2006,8 +2006,6 @@ int samsung_dsim_remove(struct platform_device *pdev)
>
>         if (dsi->plat_data->host_ops && dsi->plat_data->host_ops->unregister_host)
>                 dsi->plat_data->host_ops->unregister_host(dsi);
> -
> -       return 0;
>  }
>  EXPORT_SYMBOL_GPL(samsung_dsim_remove);
>
> @@ -2107,7 +2105,7 @@ MODULE_DEVICE_TABLE(of, samsung_dsim_of_match);
>
>  static struct platform_driver samsung_dsim_driver = {
>         .probe = samsung_dsim_probe,
> -       .remove = samsung_dsim_remove,
> +       .remove_new = samsung_dsim_remove,
>         .driver = {
>                    .name = "samsung-dsim",
>                    .pm = &samsung_dsim_pm_ops,
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> index 69ea33cae651..2fe0e5f3f638 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> @@ -181,7 +181,7 @@ MODULE_DEVICE_TABLE(of, exynos_dsi_of_match);
>
>  struct platform_driver dsi_driver = {
>         .probe = samsung_dsim_probe,
> -       .remove = samsung_dsim_remove,
> +       .remove_new = samsung_dsim_remove,
>         .driver = {
>                    .name = "exynos-dsi",
>                    .owner = THIS_MODULE,
> diff --git a/include/drm/bridge/samsung-dsim.h b/include/drm/bridge/samsung-dsim.h
> index 6fc9bb2979e4..3f8050d523eb 100644
> --- a/include/drm/bridge/samsung-dsim.h
> +++ b/include/drm/bridge/samsung-dsim.h
> @@ -116,7 +116,7 @@ struct samsung_dsim {
>  };
>
>  extern int samsung_dsim_probe(struct platform_device *pdev);
> -extern int samsung_dsim_remove(struct platform_device *pdev);
> +extern void samsung_dsim_remove(struct platform_device *pdev);
>  extern const struct dev_pm_ops samsung_dsim_pm_ops;
>
>  #endif /* __SAMSUNG_DSIM__ */
>
> base-commit: 0663e1da5ba8e6459e3555ac12c62741668c0d30
> --
> 2.40.1
>




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux