public inbox for linux-rockchip@lists.infradead.org
 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 19/31] phy: rockchip: phy-rockchip-inno-csidphy: " Uwe Kleine-König
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ 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


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

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

* [PATCH 19/31] phy: rockchip: phy-rockchip-inno-csidphy: 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 12:02   ` Heiko Stübner
  2023-03-07 11:58 ` [PATCH 20/31] phy: rockchip: phy-rockchip-inno-dsidphy: " Uwe Kleine-König
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 10+ messages in thread
From: Uwe Kleine-König @ 2023-03-07 11:58 UTC (permalink / raw)
  To: Vinod Koul, Kishon Vijay Abraham I, Heiko Stuebner
  Cc: linux-phy, linux-arm-kernel, linux-rockchip, 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/rockchip/phy-rockchip-inno-csidphy.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c b/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c
index 75f948bdea6a..98c92d6c482f 100644
--- a/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c
+++ b/drivers/phy/rockchip/phy-rockchip-inno-csidphy.c
@@ -459,13 +459,11 @@ static int rockchip_inno_csidphy_probe(struct platform_device *pdev)
 	return 0;
 }
 
-static int rockchip_inno_csidphy_remove(struct platform_device *pdev)
+static void rockchip_inno_csidphy_remove(struct platform_device *pdev)
 {
 	struct rockchip_inno_csidphy *priv = platform_get_drvdata(pdev);
 
 	pm_runtime_disable(priv->dev);
-
-	return 0;
 }
 
 static struct platform_driver rockchip_inno_csidphy_driver = {
@@ -474,7 +472,7 @@ static struct platform_driver rockchip_inno_csidphy_driver = {
 		.of_match_table = rockchip_inno_csidphy_match_id,
 	},
 	.probe = rockchip_inno_csidphy_probe,
-	.remove = rockchip_inno_csidphy_remove,
+	.remove_new = rockchip_inno_csidphy_remove,
 };
 
 module_platform_driver(rockchip_inno_csidphy_driver);
-- 
2.39.1


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

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

* [PATCH 20/31] phy: rockchip: phy-rockchip-inno-dsidphy: 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 19/31] phy: rockchip: phy-rockchip-inno-csidphy: " Uwe Kleine-König
@ 2023-03-07 11:58 ` Uwe Kleine-König
  2023-03-07 12:02   ` Heiko Stübner
  2023-03-07 11:58 ` [PATCH 21/31] phy: rockchip: phy-rockchip-inno-hdmi: " Uwe Kleine-König
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 10+ messages in thread
From: Uwe Kleine-König @ 2023-03-07 11:58 UTC (permalink / raw)
  To: Vinod Koul, Kishon Vijay Abraham I, Heiko Stuebner
  Cc: linux-phy, linux-arm-kernel, linux-rockchip, 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/rockchip/phy-rockchip-inno-dsidphy.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/phy/rockchip/phy-rockchip-inno-dsidphy.c b/drivers/phy/rockchip/phy-rockchip-inno-dsidphy.c
index 2c5847faff63..726928ff1273 100644
--- a/drivers/phy/rockchip/phy-rockchip-inno-dsidphy.c
+++ b/drivers/phy/rockchip/phy-rockchip-inno-dsidphy.c
@@ -755,13 +755,11 @@ static int inno_dsidphy_probe(struct platform_device *pdev)
 	return 0;
 }
 
-static int inno_dsidphy_remove(struct platform_device *pdev)
+static void inno_dsidphy_remove(struct platform_device *pdev)
 {
 	struct inno_dsidphy *inno = platform_get_drvdata(pdev);
 
 	pm_runtime_disable(inno->dev);
-
-	return 0;
 }
 
 static const struct of_device_id inno_dsidphy_of_match[] = {
@@ -788,7 +786,7 @@ static struct platform_driver inno_dsidphy_driver = {
 		.of_match_table	= of_match_ptr(inno_dsidphy_of_match),
 	},
 	.probe = inno_dsidphy_probe,
-	.remove = inno_dsidphy_remove,
+	.remove_new = inno_dsidphy_remove,
 };
 module_platform_driver(inno_dsidphy_driver);
 
-- 
2.39.1


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

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

* [PATCH 21/31] phy: rockchip: phy-rockchip-inno-hdmi: 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 19/31] phy: rockchip: phy-rockchip-inno-csidphy: " Uwe Kleine-König
  2023-03-07 11:58 ` [PATCH 20/31] phy: rockchip: phy-rockchip-inno-dsidphy: " Uwe Kleine-König
@ 2023-03-07 11:58 ` Uwe Kleine-König
  2023-03-07 12:02   ` Heiko Stübner
  2023-03-07 11:58 ` [PATCH 22/31] phy: rockchip: phy-rockchip-typec: " Uwe Kleine-König
  2023-03-20 11:38 ` [PATCH 00/31] phy: " Vinod Koul
  4 siblings, 1 reply; 10+ messages in thread
From: Uwe Kleine-König @ 2023-03-07 11:58 UTC (permalink / raw)
  To: Vinod Koul, Kishon Vijay Abraham I, Heiko Stuebner
  Cc: linux-phy, linux-arm-kernel, linux-rockchip, 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/rockchip/phy-rockchip-inno-hdmi.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c b/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c
index 80acca4e9e14..1e1563f5fffc 100644
--- a/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c
+++ b/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c
@@ -1246,11 +1246,9 @@ static int inno_hdmi_phy_probe(struct platform_device *pdev)
 	return PTR_ERR_OR_ZERO(phy_provider);
 }
 
-static int inno_hdmi_phy_remove(struct platform_device *pdev)
+static void inno_hdmi_phy_remove(struct platform_device *pdev)
 {
 	of_clk_del_provider(pdev->dev.of_node);
-
-	return 0;
 }
 
 static const struct of_device_id inno_hdmi_phy_of_match[] = {
@@ -1266,7 +1264,7 @@ MODULE_DEVICE_TABLE(of, inno_hdmi_phy_of_match);
 
 static struct platform_driver inno_hdmi_phy_driver = {
 	.probe  = inno_hdmi_phy_probe,
-	.remove = inno_hdmi_phy_remove,
+	.remove_new = inno_hdmi_phy_remove,
 	.driver = {
 		.name = "inno-hdmi-phy",
 		.of_match_table = inno_hdmi_phy_of_match,
-- 
2.39.1


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

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

* [PATCH 22/31] phy: rockchip: phy-rockchip-typec: 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
                   ` (2 preceding siblings ...)
  2023-03-07 11:58 ` [PATCH 21/31] phy: rockchip: phy-rockchip-inno-hdmi: " Uwe Kleine-König
@ 2023-03-07 11:58 ` Uwe Kleine-König
  2023-03-07 12:02   ` Heiko Stübner
  2023-03-20 11:38 ` [PATCH 00/31] phy: " Vinod Koul
  4 siblings, 1 reply; 10+ messages in thread
From: Uwe Kleine-König @ 2023-03-07 11:58 UTC (permalink / raw)
  To: Vinod Koul, Kishon Vijay Abraham I, Heiko Stuebner
  Cc: linux-phy, linux-arm-kernel, linux-rockchip, 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/rockchip/phy-rockchip-typec.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/phy/rockchip/phy-rockchip-typec.c b/drivers/phy/rockchip/phy-rockchip-typec.c
index 39db8acde61a..8b1667be4915 100644
--- a/drivers/phy/rockchip/phy-rockchip-typec.c
+++ b/drivers/phy/rockchip/phy-rockchip-typec.c
@@ -1194,11 +1194,9 @@ static int rockchip_typec_phy_probe(struct platform_device *pdev)
 	return 0;
 }
 
-static int rockchip_typec_phy_remove(struct platform_device *pdev)
+static void rockchip_typec_phy_remove(struct platform_device *pdev)
 {
 	pm_runtime_disable(&pdev->dev);
-
-	return 0;
 }
 
 static const struct of_device_id rockchip_typec_phy_dt_ids[] = {
@@ -1213,7 +1211,7 @@ MODULE_DEVICE_TABLE(of, rockchip_typec_phy_dt_ids);
 
 static struct platform_driver rockchip_typec_phy_driver = {
 	.probe		= rockchip_typec_phy_probe,
-	.remove		= rockchip_typec_phy_remove,
+	.remove_new	= rockchip_typec_phy_remove,
 	.driver		= {
 		.name	= "rockchip-typec-phy",
 		.of_match_table = rockchip_typec_phy_dt_ids,
-- 
2.39.1


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

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

* Re: [PATCH 19/31] phy: rockchip: phy-rockchip-inno-csidphy: Convert to platform remove callback returning void
  2023-03-07 11:58 ` [PATCH 19/31] phy: rockchip: phy-rockchip-inno-csidphy: " Uwe Kleine-König
@ 2023-03-07 12:02   ` Heiko Stübner
  0 siblings, 0 replies; 10+ messages in thread
From: Heiko Stübner @ 2023-03-07 12:02 UTC (permalink / raw)
  To: Vinod Koul, Kishon Vijay Abraham I, Uwe Kleine-König
  Cc: linux-phy, linux-arm-kernel, linux-rockchip, kernel

Am Dienstag, 7. März 2023, 12:58:48 CET schrieb Uwe Kleine-König:
> 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: Heiko Stuebner <heiko@sntech.de>



_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

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

* Re: [PATCH 20/31] phy: rockchip: phy-rockchip-inno-dsidphy: Convert to platform remove callback returning void
  2023-03-07 11:58 ` [PATCH 20/31] phy: rockchip: phy-rockchip-inno-dsidphy: " Uwe Kleine-König
@ 2023-03-07 12:02   ` Heiko Stübner
  0 siblings, 0 replies; 10+ messages in thread
From: Heiko Stübner @ 2023-03-07 12:02 UTC (permalink / raw)
  To: Vinod Koul, Kishon Vijay Abraham I, Uwe Kleine-König
  Cc: linux-phy, linux-arm-kernel, linux-rockchip, kernel

Am Dienstag, 7. März 2023, 12:58:49 CET schrieb Uwe Kleine-König:
> 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: Heiko Stuebner <heiko@sntech.de>



_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

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

* Re: [PATCH 21/31] phy: rockchip: phy-rockchip-inno-hdmi: Convert to platform remove callback returning void
  2023-03-07 11:58 ` [PATCH 21/31] phy: rockchip: phy-rockchip-inno-hdmi: " Uwe Kleine-König
@ 2023-03-07 12:02   ` Heiko Stübner
  0 siblings, 0 replies; 10+ messages in thread
From: Heiko Stübner @ 2023-03-07 12:02 UTC (permalink / raw)
  To: Vinod Koul, Kishon Vijay Abraham I, Uwe Kleine-König
  Cc: linux-phy, linux-arm-kernel, linux-rockchip, kernel

Am Dienstag, 7. März 2023, 12:58:50 CET schrieb Uwe Kleine-König:
> 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: Heiko Stuebner <heiko@sntech.de>



_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

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

* Re: [PATCH 22/31] phy: rockchip: phy-rockchip-typec: Convert to platform remove callback returning void
  2023-03-07 11:58 ` [PATCH 22/31] phy: rockchip: phy-rockchip-typec: " Uwe Kleine-König
@ 2023-03-07 12:02   ` Heiko Stübner
  0 siblings, 0 replies; 10+ messages in thread
From: Heiko Stübner @ 2023-03-07 12:02 UTC (permalink / raw)
  To: Vinod Koul, Kishon Vijay Abraham I, Uwe Kleine-König
  Cc: linux-phy, linux-arm-kernel, linux-rockchip, kernel

Am Dienstag, 7. März 2023, 12:58:51 CET schrieb Uwe Kleine-König:
> 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: Heiko Stuebner <heiko@sntech.de>



_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

^ permalink raw reply	[flat|nested] 10+ 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
                   ` (3 preceding siblings ...)
  2023-03-07 11:58 ` [PATCH 22/31] phy: rockchip: phy-rockchip-typec: " Uwe Kleine-König
@ 2023-03-20 11:38 ` Vinod Koul
  4 siblings, 0 replies; 10+ 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

_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

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

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

Thread overview: 10+ 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 19/31] phy: rockchip: phy-rockchip-inno-csidphy: " Uwe Kleine-König
2023-03-07 12:02   ` Heiko Stübner
2023-03-07 11:58 ` [PATCH 20/31] phy: rockchip: phy-rockchip-inno-dsidphy: " Uwe Kleine-König
2023-03-07 12:02   ` Heiko Stübner
2023-03-07 11:58 ` [PATCH 21/31] phy: rockchip: phy-rockchip-inno-hdmi: " Uwe Kleine-König
2023-03-07 12:02   ` Heiko Stübner
2023-03-07 11:58 ` [PATCH 22/31] phy: rockchip: phy-rockchip-typec: " Uwe Kleine-König
2023-03-07 12:02   ` Heiko Stübner
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