Linux on ARM based TI OMAP SoCs
 help / color / mirror / Atom feed
* [PATCH 00/12] bus: Convert to platform remove callback returning void
@ 2023-11-09 20:28 Uwe Kleine-König
  2023-11-09 20:28 ` [PATCH 11/12] bus: ti-sysc: " Uwe Kleine-König
  2023-11-10  6:32 ` [PATCH 00/12] bus: " Arnd Bergmann
  0 siblings, 2 replies; 6+ messages in thread
From: Uwe Kleine-König @ 2023-11-09 20:28 UTC (permalink / raw)
  To: Jay Fang, Arnd Bergmann, Rob Herring, Jernej Skrabec,
	Laurentiu Tudor, Tony Lindgren, Sicelo A. Mhlongo, Andy Gross,
	Bjorn Andersson, Konrad Dybcio, Greg Kroah-Hartman, Liu Ying,
	Geert Uytterhoeven, Luis Chamberlain, Nick Alcock, Chen-Yu Tsai,
	Samuel Holland, Hans de Goede, Yangtao Li, Yuan Can,
	Thierry Reding, Jonathan Hunter
  Cc: linux-kernel, kernel, linux-arm-msm, linux-arm-kernel,
	linux-sunxi, linux-tegra, linux-omap

Hello,

this series converts all drivers below drivers/bus to struct
platform_driver::remove_new(). See commit 5c5a7680e67b ("platform:
Provide a remove callback that returns no value") for an extended
explanation and the eventual goal.

drivers/bus/fsl-mc was already addressed earlier with a separate
series[1].

All conversations are trivial, because all .remove() callbacks returned
zero unconditionally.

Some of the drivers touched here don't have a maintainer and there is no
maintainer for all of drivers/bus. It would be great if someone could pick up
the whole series, maybe Arnd might do that?

Best regards
Uwe

[1] https://lore.kernel.org/lkml/20231103230001.3652259-3-u.kleine-koenig@pengutronix.de

Uwe Kleine-König (12):
  bus: hisi_lpc: Convert to platform remove callback returning void
  bus: omap-ocp2scp: Convert to platform remove callback returning void
  bus: omap_l3_smx: Convert to platform remove callback returning void
  bus: qcom-ssc-block-bus: Convert to platform remove callback returning
    void
  bus: simple-pm-bus: Convert to platform remove callback returning void
  bus: sun50i-de2: Convert to platform remove callback returning void
  bus: sunxi-rsb: Convert to platform remove callback returning void
  bus: tegra-aconnect: Convert to platform remove callback returning
    void
  bus: tegra-gmi: Convert to platform remove callback returning void
  bus: ti-pwmss: Convert to platform remove callback returning void
  bus: ti-sysc: Convert to platform remove callback returning void
  bus: ts-nbus: Convert to platform remove callback returning void

 drivers/bus/hisi_lpc.c           | 6 ++----
 drivers/bus/omap-ocp2scp.c       | 6 ++----
 drivers/bus/omap_l3_smx.c        | 6 ++----
 drivers/bus/qcom-ssc-block-bus.c | 6 ++----
 drivers/bus/simple-pm-bus.c      | 7 +++----
 drivers/bus/sun50i-de2.c         | 5 ++---
 drivers/bus/sunxi-rsb.c          | 6 ++----
 drivers/bus/tegra-aconnect.c     | 6 ++----
 drivers/bus/tegra-gmi.c          | 6 ++----
 drivers/bus/ti-pwmss.c           | 5 ++---
 drivers/bus/ti-sysc.c            | 6 ++----
 drivers/bus/ts-nbus.c            | 6 ++----
 12 files changed, 25 insertions(+), 46 deletions(-)

base-commit: b622d91ca201bf97582e9b09ebbaab005ecee86f
-- 
2.42.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 11/12] bus: ti-sysc: Convert to platform remove callback returning void
  2023-11-09 20:28 [PATCH 00/12] bus: Convert to platform remove callback returning void Uwe Kleine-König
@ 2023-11-09 20:28 ` Uwe Kleine-König
  2023-11-10  6:59   ` Tony Lindgren
  2023-11-10  6:32 ` [PATCH 00/12] bus: " Arnd Bergmann
  1 sibling, 1 reply; 6+ messages in thread
From: Uwe Kleine-König @ 2023-11-09 20:28 UTC (permalink / raw)
  To: Arnd Bergmann, Tony Lindgren; +Cc: linux-omap, linux-kernel, kernel

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() will be renamed to .remove().

Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
 drivers/bus/ti-sysc.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c
index d57bc066dce6..490841dbe0d8 100644
--- a/drivers/bus/ti-sysc.c
+++ b/drivers/bus/ti-sysc.c
@@ -3387,7 +3387,7 @@ static int sysc_probe(struct platform_device *pdev)
 	return error;
 }
 
-static int sysc_remove(struct platform_device *pdev)
+static void sysc_remove(struct platform_device *pdev)
 {
 	struct sysc *ddata = platform_get_drvdata(pdev);
 	int error;
@@ -3412,8 +3412,6 @@ static int sysc_remove(struct platform_device *pdev)
 
 unprepare:
 	sysc_unprepare(ddata);
-
-	return 0;
 }
 
 static const struct of_device_id sysc_match[] = {
@@ -3439,7 +3437,7 @@ MODULE_DEVICE_TABLE(of, sysc_match);
 
 static struct platform_driver sysc_driver = {
 	.probe		= sysc_probe,
-	.remove		= sysc_remove,
+	.remove_new	= sysc_remove,
 	.driver         = {
 		.name   = "ti-sysc",
 		.of_match_table	= sysc_match,
-- 
2.42.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 00/12] bus: Convert to platform remove callback returning void
  2023-11-09 20:28 [PATCH 00/12] bus: Convert to platform remove callback returning void Uwe Kleine-König
  2023-11-09 20:28 ` [PATCH 11/12] bus: ti-sysc: " Uwe Kleine-König
@ 2023-11-10  6:32 ` Arnd Bergmann
  2023-11-16 11:53   ` [PULL] " Uwe Kleine-König
  1 sibling, 1 reply; 6+ messages in thread
From: Arnd Bergmann @ 2023-11-10  6:32 UTC (permalink / raw)
  To: Uwe Kleine-König, Jay Fang, Rob Herring, Jernej Skrabec,
	Laurentiu Tudor, Tony Lindgren, Sicelo A. Mhlongo, Andy Gross,
	Bjorn Andersson, Konrad Dybcio, Greg Kroah-Hartman, Liu Ying,
	Geert Uytterhoeven, Luis Chamberlain, Nick Alcock, Chen-Yu Tsai,
	Samuel Holland, Hans de Goede, Yangtao Li, Yuan Can,
	Thierry Reding, Jon Hunter
  Cc: linux-kernel, Pengutronix Kernel Team, linux-arm-msm,
	linux-arm-kernel, linux-sunxi, linux-tegra, Linux-OMAP

On Thu, Nov 9, 2023, at 21:28, Uwe Kleine-König wrote:
> Hello,
>
> this series converts all drivers below drivers/bus to struct
> platform_driver::remove_new(). See commit 5c5a7680e67b ("platform:
> Provide a remove callback that returns no value") for an extended
> explanation and the eventual goal.
>
> drivers/bus/fsl-mc was already addressed earlier with a separate
> series[1].
>
> All conversations are trivial, because all .remove() callbacks returned
> zero unconditionally.
>
> Some of the drivers touched here don't have a maintainer and there is no
> maintainer for all of drivers/bus. It would be great if someone could pick up
> the whole series, maybe Arnd might do that?

Sure, please send a pull request to soc@kernel.org if there
are no further comments.

      Arnd

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 11/12] bus: ti-sysc: Convert to platform remove callback returning void
  2023-11-09 20:28 ` [PATCH 11/12] bus: ti-sysc: " Uwe Kleine-König
@ 2023-11-10  6:59   ` Tony Lindgren
  0 siblings, 0 replies; 6+ messages in thread
From: Tony Lindgren @ 2023-11-10  6:59 UTC (permalink / raw)
  To: Uwe Kleine-König; +Cc: Arnd Bergmann, linux-omap, linux-kernel, kernel

* Uwe Kleine-König <u.kleine-koenig@pengutronix.de> [231109 20:29]:
> Trivially convert this driver from always returning zero in the remove
> callback to the void returning variant.

Looks good to me, please queue along with your other patches:

Reviewed-by: Tony Lindgren <tony@atomide.com>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PULL] bus: Convert to platform remove callback returning void
  2023-11-10  6:32 ` [PATCH 00/12] bus: " Arnd Bergmann
@ 2023-11-16 11:53   ` Uwe Kleine-König
  2023-11-28 17:49     ` [PULL v2] " Uwe Kleine-König
  0 siblings, 1 reply; 6+ messages in thread
From: Uwe Kleine-König @ 2023-11-16 11:53 UTC (permalink / raw)
  To: Arnd Bergmann, soc
  Cc: Jay Fang, Rob Herring, Jernej Skrabec, Laurentiu Tudor,
	Tony Lindgren, Sicelo A. Mhlongo, Andy Gross, Bjorn Andersson,
	Konrad Dybcio, Greg Kroah-Hartman, Liu Ying, Geert Uytterhoeven,
	Luis Chamberlain, Nick Alcock, Chen-Yu Tsai, Samuel Holland,
	Hans de Goede, Yangtao Li, Yuan Can, Thierry Reding, Jon Hunter,
	linux-arm-msm, linux-kernel, Pengutronix Kernel Team, linux-tegra,
	Linux-OMAP, linux-sunxi, linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 3859 bytes --]

Hello Arnd,

On Fri, Nov 10, 2023 at 07:32:01AM +0100, Arnd Bergmann wrote:
> On Thu, Nov 9, 2023, at 21:28, Uwe Kleine-König wrote:
> > this series converts all drivers below drivers/bus to struct
> > platform_driver::remove_new(). See commit 5c5a7680e67b ("platform:
> > Provide a remove callback that returns no value") for an extended
> > explanation and the eventual goal.
> >
> > drivers/bus/fsl-mc was already addressed earlier with a separate
> > series[1].
> >
> > All conversations are trivial, because all .remove() callbacks returned
> > zero unconditionally.
> >
> > Some of the drivers touched here don't have a maintainer and there is no
> > maintainer for all of drivers/bus. It would be great if someone could pick up
> > the whole series, maybe Arnd might do that?
> 
> Sure, please send a pull request to soc@kernel.org if there
> are no further comments.

here it comes:

The following changes since commit b85ea95d086471afb4ad062012a4d73cd328fa86:

  Linux 6.7-rc1 (2023-11-12 16:19:07 -0800)

are available in the Git repository at:

  https://git.pengutronix.de/git/ukl/linux tags/bus-platform-remove-void

for you to fetch changes up to 7d6da8800a35d2257ff8b4b7d7c4551978f0a71a:

  bus: ts-nbus: Convert to platform remove callback returning void (2023-11-16 12:43:57 +0100)

----------------------------------------------------------------
This series converts all drivers below drivers/bus to struct
platform_driver::remove_new(). See commit 5c5a7680e67b ("platform:
Provide a remove callback that returns no value") for an extended
explanation and the eventual goal.

After the initial simplification in commit 864acca58000 ("bus: fsl-mc:
Drop if block with always false condition") all conversations are
trivial because the remove callbacks all return zero unconditionally.

----------------------------------------------------------------
Uwe Kleine-König (14):
      bus: fsl-mc: Drop if block with always false condition
      bus: fsl-mc: Convert to platform remove callback returning void
      bus: hisi_lpc: Convert to platform remove callback returning void
      bus: omap-ocp2scp: Convert to platform remove callback returning void
      bus: omap_l3_smx: Convert to platform remove callback returning void
      bus: qcom-ssc-block-bus: Convert to platform remove callback returning void
      bus: simple-pm-bus: Convert to platform remove callback returning void
      bus: sun50i-de2: Convert to platform remove callback returning void
      bus: sunxi-rsb: Convert to platform remove callback returning void
      bus: tegra-aconnect: Convert to platform remove callback returning void
      bus: tegra-gmi: Convert to platform remove callback returning void
      bus: ti-pwmss: Convert to platform remove callback returning void
      bus: ti-sysc: Convert to platform remove callback returning void
      bus: ts-nbus: Convert to platform remove callback returning void

 drivers/bus/fsl-mc/fsl-mc-bus.c  | 16 +++-------------
 drivers/bus/hisi_lpc.c           |  6 ++----
 drivers/bus/omap-ocp2scp.c       |  6 ++----
 drivers/bus/omap_l3_smx.c        |  6 ++----
 drivers/bus/qcom-ssc-block-bus.c |  6 ++----
 drivers/bus/simple-pm-bus.c      |  7 +++----
 drivers/bus/sun50i-de2.c         |  5 ++---
 drivers/bus/sunxi-rsb.c          |  6 ++----
 drivers/bus/tegra-aconnect.c     |  6 ++----
 drivers/bus/tegra-gmi.c          |  6 ++----
 drivers/bus/ti-pwmss.c           |  5 ++---
 drivers/bus/ti-sysc.c            |  6 ++----
 drivers/bus/ts-nbus.c            |  6 ++----
 13 files changed, 28 insertions(+), 59 deletions(-)

Thanks for considering these changes,
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PULL v2] bus: Convert to platform remove callback returning void
  2023-11-16 11:53   ` [PULL] " Uwe Kleine-König
@ 2023-11-28 17:49     ` Uwe Kleine-König
  0 siblings, 0 replies; 6+ messages in thread
From: Uwe Kleine-König @ 2023-11-28 17:49 UTC (permalink / raw)
  To: Arnd Bergmann, soc
  Cc: Geert Uytterhoeven, Tony Lindgren, Yuan Can, Thierry Reding,
	Rob Herring, Samuel Holland, Jernej Skrabec, Jon Hunter,
	Chen-Yu Tsai, Andy Gross, linux-sunxi, Nick Alcock, Yangtao Li,
	Liu Ying, linux-arm-msm, Jay Fang, Hans de Goede, linux-tegra,
	Linux-OMAP, linux-arm-kernel, Laurentiu Tudor, Sicelo A. Mhlongo,
	Greg Kroah-Hartman, Bjorn Andersson, linux-kernel, Konrad Dybcio,
	Luis Chamberlain, Pengutronix Kernel Team

[-- Attachment #1: Type: text/plain, Size: 4392 bytes --]

Hello Arnd,

On Thu, Nov 16, 2023 at 12:53:07PM +0100, Uwe Kleine-König wrote:
> On Fri, Nov 10, 2023 at 07:32:01AM +0100, Arnd Bergmann wrote:
> > On Thu, Nov 9, 2023, at 21:28, Uwe Kleine-König wrote:
> > > this series converts all drivers below drivers/bus to struct
> > > platform_driver::remove_new(). See commit 5c5a7680e67b ("platform:
> > > Provide a remove callback that returns no value") for an extended
> > > explanation and the eventual goal.
> > >
> > > drivers/bus/fsl-mc was already addressed earlier with a separate
> > > series[1].
> > >
> > > All conversations are trivial, because all .remove() callbacks returned
> > > zero unconditionally.
> > >
> > > Some of the drivers touched here don't have a maintainer and there is no
> > > maintainer for all of drivers/bus. It would be great if someone could pick up
> > > the whole series, maybe Arnd might do that?
> > 
> > Sure, please send a pull request to soc@kernel.org if there
> > are no further comments.
> 
> here it comes:
> 
> The following changes since commit b85ea95d086471afb4ad062012a4d73cd328fa86:
> 
>   Linux 6.7-rc1 (2023-11-12 16:19:07 -0800)

Here comes an updated PR. The only change is that it also includes two
Reviewed-by tags for Jernej Skrabec that came in after I sent the PR.
Obviously that changed the commit hash which made it necessary to redo
the PR. I hope it doesn't disturb your tooling that there are now two
similar pull requests.

Best regards
Uwe

The following changes since commit b85ea95d086471afb4ad062012a4d73cd328fa86:

  Linux 6.7-rc1 (2023-11-12 16:19:07 -0800)

are available in the Git repository at:

  https://git.pengutronix.de/git/ukl/linux tags/bus-platform-remove-void

for you to fetch changes up to fc540426f7baa0c7d4b477e80435d075659092a2:

  bus: ts-nbus: Convert to platform remove callback returning void (2023-11-28 18:43:27 +0100)

----------------------------------------------------------------
This series converts all drivers below drivers/bus to struct
platform_driver::remove_new(). See commit 5c5a7680e67b ("platform:
Provide a remove callback that returns no value") for an extended
explanation and the eventual goal.

After the initial simplification in commit 864acca58000 ("bus: fsl-mc:
Drop if block with always false condition") all conversations are
trivial because the remove callbacks all return zero unconditionally.

----------------------------------------------------------------
Uwe Kleine-König (14):
      bus: fsl-mc: Drop if block with always false condition
      bus: fsl-mc: Convert to platform remove callback returning void
      bus: hisi_lpc: Convert to platform remove callback returning void
      bus: omap-ocp2scp: Convert to platform remove callback returning void
      bus: omap_l3_smx: Convert to platform remove callback returning void
      bus: qcom-ssc-block-bus: Convert to platform remove callback returning void
      bus: simple-pm-bus: Convert to platform remove callback returning void
      bus: sun50i-de2: Convert to platform remove callback returning void
      bus: sunxi-rsb: Convert to platform remove callback returning void
      bus: tegra-aconnect: Convert to platform remove callback returning void
      bus: tegra-gmi: Convert to platform remove callback returning void
      bus: ti-pwmss: Convert to platform remove callback returning void
      bus: ti-sysc: Convert to platform remove callback returning void
      bus: ts-nbus: Convert to platform remove callback returning void

 drivers/bus/fsl-mc/fsl-mc-bus.c  | 16 +++-------------
 drivers/bus/hisi_lpc.c           |  6 ++----
 drivers/bus/omap-ocp2scp.c       |  6 ++----
 drivers/bus/omap_l3_smx.c        |  6 ++----
 drivers/bus/qcom-ssc-block-bus.c |  6 ++----
 drivers/bus/simple-pm-bus.c      |  7 +++----
 drivers/bus/sun50i-de2.c         |  5 ++---
 drivers/bus/sunxi-rsb.c          |  6 ++----
 drivers/bus/tegra-aconnect.c     |  6 ++----
 drivers/bus/tegra-gmi.c          |  6 ++----
 drivers/bus/ti-pwmss.c           |  5 ++---
 drivers/bus/ti-sysc.c            |  6 ++----
 drivers/bus/ts-nbus.c            |  6 ++----
 13 files changed, 28 insertions(+), 59 deletions(-)


-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-11-28 17:50 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-09 20:28 [PATCH 00/12] bus: Convert to platform remove callback returning void Uwe Kleine-König
2023-11-09 20:28 ` [PATCH 11/12] bus: ti-sysc: " Uwe Kleine-König
2023-11-10  6:59   ` Tony Lindgren
2023-11-10  6:32 ` [PATCH 00/12] bus: " Arnd Bergmann
2023-11-16 11:53   ` [PULL] " Uwe Kleine-König
2023-11-28 17:49     ` [PULL v2] " Uwe Kleine-König

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox