linux-renesas-soc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/31] phy: Convert to platform remove callback returning void
@ 2023-03-07 11:58 Uwe Kleine-König
  2023-03-07 11:58 ` [PATCH 16/31] phy: renesas: phy-rcar-gen3-usb2: " Uwe Kleine-König
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Uwe Kleine-König @ 2023-03-07 11:58 UTC (permalink / raw)
  To: Vinod Koul, Kishon Vijay Abraham I, Chen-Yu Tsai, Jernej Skrabec,
	Samuel Holland, Andre Przywara, Wolfram Sang, Icenowy Zheng,
	Justin Chen, Al Cooper, Pratyush Yadav, Rahul T R,
	Swapnil Jakhade, Lars-Peter Clausen, Shawn Guo, Sascha Hauer,
	Liu Ying, Yuan Can, Chun-Kuang Hu, Philipp Zabel, Chunfeng Yun,
	Matthias Brugger, Thomas Gleixner, Allison Randal,
	Greg Kroah-Hartman, Miaoqian Lin, Andy Gross, Bjorn Andersson,
	Yoshihiro Shimoda, Heiko Stuebner, Maxime Coquelin,
	Alexandre Torgue, Amelie Delaunay, Dan Carpenter,
	Fabrice Gasnier, JC Kuo, Thierry Reding, Jonathan Hunter,
	Roger Quadros, Matt Ranostay, Sinthu Raja, Vignesh Raghavendra,
	Tanmay Patil, Siddharth Vadapalli, Lv Ruyi
  Cc: linux-phy, linux-arm-kernel, linux-sunxi, kernel,
	Broadcom internal kernel review list, Fabio Estevam,
	NXP Linux Team, AngeloGioacchino Del Regno, dri-devel,
	linux-mediatek, Konrad Dybcio, linux-arm-msm, linux-renesas-soc,
	linux-rockchip, linux-stm32, linux-tegra

Hello,

this patch series adapts the platform drivers below drivers/phy to use the
.remove_new() callback. Compared to the traditional .remove() callback
.remove_new() returns no value. This is a good thing because the driver core
doesn't (and cannot) cope for errors during remove. The only effect of a
non-zero return value in .remove() is that the driver core emits a warning. The
device is removed anyhow and an early return from .remove() usually yields a
resource leak.

By changing the remove callback to return void driver authors cannot
reasonably assume any more that there is some kind of cleanup later.

All drivers in drivers/spmi returned zero unconditionally in their remove
callback, so they could all be converted trivially to .remove_new().

Note that this series depends on commit 5c5a7680e67b ("platform: Provide
a remove callback that returns no value") which is included in v6.3-rc1.

Best regards
Uwe

Uwe Kleine-König (31):
  phy: allwinner: phy-sun4i-usb: Convert to platform remove callback
    returning void
  phy: broadcom: phy-brcm-usb: Convert to platform remove callback
    returning void
  phy: cadence: cdns-dphy: Convert to platform remove callback returning
    void
  phy: cadence: phy-cadence-sierra: Convert to platform remove callback
    returning void
  phy: cadence: phy-cadence-torrent: Convert to platform remove callback
    returning void
  phy: freescale: phy-fsl-imx8qm-lvds-phy: Convert to platform remove
    callback returning void
  phy: intel: phy-intel-lgm-combo: Convert to platform remove callback
    returning void
  phy: mediatek: phy-mtk-mipi-dsi: Convert to platform remove callback
    returning void
  phy: motorola: phy-cpcap-usb: Convert to platform remove callback
    returning void
  phy: motorola: phy-mapphone-mdm6600: Convert to platform remove
    callback returning void
  phy: phy-lgm-usb: Convert to platform remove callback returning void
  phy: qualcomm: phy-qcom-apq8064-sata: Convert to platform remove
    callback returning void
  phy: qualcomm: phy-qcom-eusb2-repeater: Convert to platform remove
    callback returning void
  phy: qualcomm: phy-qcom-ipq806x-sata: Convert to platform remove
    callback returning void
  phy: renesas: phy-rcar-gen3-pcie: Convert to platform remove callback
    returning void
  phy: renesas: phy-rcar-gen3-usb2: Convert to platform remove callback
    returning void
  phy: renesas: phy-rcar-gen3-usb3: Convert to platform remove callback
    returning void
  phy: renesas: r8a779f0-ether-serdes: Convert to platform remove
    callback returning void
  phy: rockchip: phy-rockchip-inno-csidphy: Convert to platform remove
    callback returning void
  phy: rockchip: phy-rockchip-inno-dsidphy: Convert to platform remove
    callback returning void
  phy: rockchip: phy-rockchip-inno-hdmi: Convert to platform remove
    callback returning void
  phy: rockchip: phy-rockchip-typec: Convert to platform remove callback
    returning void
  phy: st: phy-stm32-usbphyc: Convert to platform remove callback
    returning void
  phy: tegra: xusb: Convert to platform remove callback returning void
  phy: ti: phy-am654-serdes: Convert to platform remove callback
    returning void
  phy: ti: phy-da8xx-usb: Convert to platform remove callback returning
    void
  phy: ti: phy-dm816x-usb: Convert to platform remove callback returning
    void
  phy: ti: phy-j721e-wiz: Convert to platform remove callback returning
    void
  phy: ti: phy-omap-usb2: Convert to platform remove callback returning
    void
  phy: ti: phy-ti-pipe3: Convert to platform remove callback returning
    void
  phy: ti: phy-twl4030-usb: Convert to platform remove callback
    returning void

 drivers/phy/allwinner/phy-sun4i-usb.c            | 6 ++----
 drivers/phy/broadcom/phy-brcm-usb.c              | 6 ++----
 drivers/phy/cadence/cdns-dphy.c                  | 6 ++----
 drivers/phy/cadence/phy-cadence-sierra.c         | 6 ++----
 drivers/phy/cadence/phy-cadence-torrent.c        | 6 ++----
 drivers/phy/freescale/phy-fsl-imx8qm-lvds-phy.c  | 6 ++----
 drivers/phy/intel/phy-intel-lgm-combo.c          | 5 ++---
 drivers/phy/mediatek/phy-mtk-mipi-dsi.c          | 5 ++---
 drivers/phy/motorola/phy-cpcap-usb.c             | 6 ++----
 drivers/phy/motorola/phy-mapphone-mdm6600.c      | 6 ++----
 drivers/phy/phy-lgm-usb.c                        | 6 ++----
 drivers/phy/qualcomm/phy-qcom-apq8064-sata.c     | 6 ++----
 drivers/phy/qualcomm/phy-qcom-eusb2-repeater.c   | 8 +++-----
 drivers/phy/qualcomm/phy-qcom-ipq806x-sata.c     | 6 ++----
 drivers/phy/renesas/phy-rcar-gen3-pcie.c         | 6 ++----
 drivers/phy/renesas/phy-rcar-gen3-usb2.c         | 6 ++----
 drivers/phy/renesas/phy-rcar-gen3-usb3.c         | 6 ++----
 drivers/phy/renesas/r8a779f0-ether-serdes.c      | 6 ++----
 drivers/phy/rockchip/phy-rockchip-inno-csidphy.c | 6 ++----
 drivers/phy/rockchip/phy-rockchip-inno-dsidphy.c | 6 ++----
 drivers/phy/rockchip/phy-rockchip-inno-hdmi.c    | 6 ++----
 drivers/phy/rockchip/phy-rockchip-typec.c        | 6 ++----
 drivers/phy/st/phy-stm32-usbphyc.c               | 6 ++----
 drivers/phy/tegra/xusb.c                         | 6 ++----
 drivers/phy/ti/phy-am654-serdes.c                | 6 ++----
 drivers/phy/ti/phy-da8xx-usb.c                   | 6 ++----
 drivers/phy/ti/phy-dm816x-usb.c                  | 6 ++----
 drivers/phy/ti/phy-j721e-wiz.c                   | 6 ++----
 drivers/phy/ti/phy-omap-usb2.c                   | 6 ++----
 drivers/phy/ti/phy-ti-pipe3.c                    | 6 ++----
 drivers/phy/ti/phy-twl4030-usb.c                 | 6 ++----
 31 files changed, 63 insertions(+), 123 deletions(-)

base-commit: fe15c26ee26efa11741a7b632e9f23b01aca4cc6
-- 
2.39.1


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

* [PATCH 16/31] phy: renesas: phy-rcar-gen3-usb2: Convert to platform remove callback returning void
  2023-03-07 11:58 [PATCH 00/31] phy: Convert to platform remove callback returning void Uwe Kleine-König
@ 2023-03-07 11:58 ` Uwe Kleine-König
  2023-03-07 13:35   ` Geert Uytterhoeven
  2023-03-07 11:58 ` [PATCH 17/31] phy: renesas: phy-rcar-gen3-usb3: " Uwe Kleine-König
  2023-03-20 11:38 ` [PATCH 00/31] phy: " Vinod Koul
  2 siblings, 1 reply; 6+ messages in thread
From: Uwe Kleine-König @ 2023-03-07 11:58 UTC (permalink / raw)
  To: Yoshihiro Shimoda, Vinod Koul, Kishon Vijay Abraham I
  Cc: linux-renesas-soc, linux-phy, 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 (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.

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

diff --git a/drivers/phy/renesas/phy-rcar-gen3-usb2.c b/drivers/phy/renesas/phy-rcar-gen3-usb2.c
index 9de617ca9daa..d4e2ee7e4efb 100644
--- a/drivers/phy/renesas/phy-rcar-gen3-usb2.c
+++ b/drivers/phy/renesas/phy-rcar-gen3-usb2.c
@@ -755,7 +755,7 @@ static int rcar_gen3_phy_usb2_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int rcar_gen3_phy_usb2_remove(struct platform_device *pdev)
+static void rcar_gen3_phy_usb2_remove(struct platform_device *pdev)
 {
 	struct rcar_gen3_chan *channel = platform_get_drvdata(pdev);
 
@@ -763,8 +763,6 @@ static int rcar_gen3_phy_usb2_remove(struct platform_device *pdev)
 		device_remove_file(&pdev->dev, &dev_attr_role);
 
 	pm_runtime_disable(&pdev->dev);
-
-	return 0;
 };
 
 static struct platform_driver rcar_gen3_phy_usb2_driver = {
@@ -773,7 +771,7 @@ static struct platform_driver rcar_gen3_phy_usb2_driver = {
 		.of_match_table	= rcar_gen3_phy_usb2_match_table,
 	},
 	.probe	= rcar_gen3_phy_usb2_probe,
-	.remove = rcar_gen3_phy_usb2_remove,
+	.remove_new = rcar_gen3_phy_usb2_remove,
 };
 module_platform_driver(rcar_gen3_phy_usb2_driver);
 
-- 
2.39.1


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

* [PATCH 17/31] phy: renesas: phy-rcar-gen3-usb3: Convert to platform remove callback returning void
  2023-03-07 11:58 [PATCH 00/31] phy: Convert to platform remove callback returning void Uwe Kleine-König
  2023-03-07 11:58 ` [PATCH 16/31] phy: renesas: phy-rcar-gen3-usb2: " Uwe Kleine-König
@ 2023-03-07 11:58 ` Uwe Kleine-König
  2023-03-07 13:36   ` Geert Uytterhoeven
  2023-03-20 11:38 ` [PATCH 00/31] phy: " Vinod Koul
  2 siblings, 1 reply; 6+ messages in thread
From: Uwe Kleine-König @ 2023-03-07 11:58 UTC (permalink / raw)
  To: Yoshihiro Shimoda, Vinod Koul, Kishon Vijay Abraham I
  Cc: linux-renesas-soc, linux-phy, 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 (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.

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

diff --git a/drivers/phy/renesas/phy-rcar-gen3-usb3.c b/drivers/phy/renesas/phy-rcar-gen3-usb3.c
index f27d6f471629..e2d630edd992 100644
--- a/drivers/phy/renesas/phy-rcar-gen3-usb3.c
+++ b/drivers/phy/renesas/phy-rcar-gen3-usb3.c
@@ -199,11 +199,9 @@ static int rcar_gen3_phy_usb3_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int rcar_gen3_phy_usb3_remove(struct platform_device *pdev)
+static void rcar_gen3_phy_usb3_remove(struct platform_device *pdev)
 {
 	pm_runtime_disable(&pdev->dev);
-
-	return 0;
 };
 
 static struct platform_driver rcar_gen3_phy_usb3_driver = {
@@ -212,7 +210,7 @@ static struct platform_driver rcar_gen3_phy_usb3_driver = {
 		.of_match_table	= rcar_gen3_phy_usb3_match_table,
 	},
 	.probe	= rcar_gen3_phy_usb3_probe,
-	.remove = rcar_gen3_phy_usb3_remove,
+	.remove_new = rcar_gen3_phy_usb3_remove,
 };
 module_platform_driver(rcar_gen3_phy_usb3_driver);
 
-- 
2.39.1


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

* Re: [PATCH 16/31] phy: renesas: phy-rcar-gen3-usb2: Convert to platform remove callback returning void
  2023-03-07 11:58 ` [PATCH 16/31] phy: renesas: phy-rcar-gen3-usb2: " Uwe Kleine-König
@ 2023-03-07 13:35   ` Geert Uytterhoeven
  0 siblings, 0 replies; 6+ messages in thread
From: Geert Uytterhoeven @ 2023-03-07 13:35 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: Yoshihiro Shimoda, Vinod Koul, Kishon Vijay Abraham I,
	linux-renesas-soc, linux-phy, kernel

On Tue, Mar 7, 2023 at 1:11 PM Uwe Kleine-König
<u.kleine-koenig@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 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>

Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

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

* Re: [PATCH 17/31] phy: renesas: phy-rcar-gen3-usb3: Convert to platform remove callback returning void
  2023-03-07 11:58 ` [PATCH 17/31] phy: renesas: phy-rcar-gen3-usb3: " Uwe Kleine-König
@ 2023-03-07 13:36   ` Geert Uytterhoeven
  0 siblings, 0 replies; 6+ messages in thread
From: Geert Uytterhoeven @ 2023-03-07 13:36 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: Yoshihiro Shimoda, Vinod Koul, Kishon Vijay Abraham I,
	linux-renesas-soc, linux-phy, kernel

On Tue, Mar 7, 2023 at 1:11 PM Uwe Kleine-König
<u.kleine-koenig@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 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>

Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

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

* Re: [PATCH 00/31] phy: Convert to platform remove callback returning void
  2023-03-07 11:58 [PATCH 00/31] phy: Convert to platform remove callback returning void Uwe Kleine-König
  2023-03-07 11:58 ` [PATCH 16/31] phy: renesas: phy-rcar-gen3-usb2: " Uwe Kleine-König
  2023-03-07 11:58 ` [PATCH 17/31] phy: renesas: phy-rcar-gen3-usb3: " Uwe Kleine-König
@ 2023-03-20 11:38 ` Vinod Koul
  2 siblings, 0 replies; 6+ messages in thread
From: Vinod Koul @ 2023-03-20 11:38 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: Kishon Vijay Abraham I, Chen-Yu Tsai, Jernej Skrabec,
	Samuel Holland, Andre Przywara, Wolfram Sang, Icenowy Zheng,
	Justin Chen, Al Cooper, Pratyush Yadav, Rahul T R,
	Swapnil Jakhade, Lars-Peter Clausen, Shawn Guo, Sascha Hauer,
	Liu Ying, Yuan Can, Chun-Kuang Hu, Philipp Zabel, Chunfeng Yun,
	Matthias Brugger, Thomas Gleixner, Allison Randal,
	Greg Kroah-Hartman, Miaoqian Lin, Andy Gross, Bjorn Andersson,
	Yoshihiro Shimoda, Heiko Stuebner, Maxime Coquelin,
	Alexandre Torgue, Amelie Delaunay, Dan Carpenter,
	Fabrice Gasnier, JC Kuo, Thierry Reding, Jonathan Hunter,
	Roger Quadros, Matt Ranostay, Sinthu Raja, Vignesh Raghavendra,
	Tanmay Patil, Siddharth Vadapalli, Lv Ruyi, linux-phy,
	linux-arm-kernel, linux-sunxi, kernel,
	Broadcom internal kernel review list, Fabio Estevam,
	NXP Linux Team, AngeloGioacchino Del Regno, dri-devel,
	linux-mediatek, Konrad Dybcio, linux-arm-msm, linux-renesas-soc,
	linux-rockchip, linux-stm32, linux-tegra

On 07-03-23, 12:58, Uwe Kleine-König wrote:
> Hello,
> 
> this patch series adapts the platform drivers below drivers/phy to use the
> .remove_new() callback. Compared to the traditional .remove() callback
> .remove_new() returns no value. This is a good thing because the driver core
> doesn't (and cannot) cope for errors during remove. The only effect of a
> non-zero return value in .remove() is that the driver core emits a warning. The
> device is removed anyhow and an early return from .remove() usually yields a
> resource leak.
> 
> By changing the remove callback to return void driver authors cannot
> reasonably assume any more that there is some kind of cleanup later.
> 
> All drivers in drivers/spmi returned zero unconditionally in their remove
> callback, so they could all be converted trivially to .remove_new().
> 
> Note that this series depends on commit 5c5a7680e67b ("platform: Provide
> a remove callback that returns no value") which is included in v6.3-rc1.

Applied, thanks

-- 
~Vinod

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

end of thread, other threads:[~2023-03-20 11:38 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-07 11:58 [PATCH 00/31] phy: Convert to platform remove callback returning void Uwe Kleine-König
2023-03-07 11:58 ` [PATCH 16/31] phy: renesas: phy-rcar-gen3-usb2: " Uwe Kleine-König
2023-03-07 13:35   ` Geert Uytterhoeven
2023-03-07 11:58 ` [PATCH 17/31] phy: renesas: phy-rcar-gen3-usb3: " Uwe Kleine-König
2023-03-07 13:36   ` Geert Uytterhoeven
2023-03-20 11:38 ` [PATCH 00/31] phy: " Vinod Koul

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).