public inbox for linux-sunxi@lists.linux.dev
 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 01/31] phy: allwinner: phy-sun4i-usb: " Uwe Kleine-König
  2023-03-20 11:38 ` [PATCH 00/31] phy: " Vinod Koul
  0 siblings, 2 replies; 4+ 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] 4+ messages in thread

* [PATCH 01/31] phy: allwinner: phy-sun4i-usb: 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-14 20:11   ` Jernej Škrabec
  2023-03-20 11:38 ` [PATCH 00/31] phy: " Vinod Koul
  1 sibling, 1 reply; 4+ 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
  Cc: linux-phy, linux-arm-kernel, linux-sunxi, 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/allwinner/phy-sun4i-usb.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c b/drivers/phy/allwinner/phy-sun4i-usb.c
index fbcd7014ab43..6a74e5ce180a 100644
--- a/drivers/phy/allwinner/phy-sun4i-usb.c
+++ b/drivers/phy/allwinner/phy-sun4i-usb.c
@@ -698,7 +698,7 @@ static struct phy *sun4i_usb_phy_xlate(struct device *dev,
 	return data->phys[args->args[0]].phy;
 }
 
-static int sun4i_usb_phy_remove(struct platform_device *pdev)
+static void sun4i_usb_phy_remove(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
 	struct sun4i_usb_phy_data *data = dev_get_drvdata(dev);
@@ -711,8 +711,6 @@ static int sun4i_usb_phy_remove(struct platform_device *pdev)
 		devm_free_irq(dev, data->vbus_det_irq, data);
 
 	cancel_delayed_work_sync(&data->detect);
-
-	return 0;
 }
 
 static const unsigned int sun4i_usb_phy0_cable[] = {
@@ -1054,7 +1052,7 @@ MODULE_DEVICE_TABLE(of, sun4i_usb_phy_of_match);
 
 static struct platform_driver sun4i_usb_phy_driver = {
 	.probe	= sun4i_usb_phy_probe,
-	.remove	= sun4i_usb_phy_remove,
+	.remove_new = sun4i_usb_phy_remove,
 	.driver = {
 		.of_match_table	= sun4i_usb_phy_of_match,
 		.name  = "sun4i-usb-phy",
-- 
2.39.1


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

* Re: [PATCH 01/31] phy: allwinner: phy-sun4i-usb: Convert to platform remove callback returning void
  2023-03-07 11:58 ` [PATCH 01/31] phy: allwinner: phy-sun4i-usb: " Uwe Kleine-König
@ 2023-03-14 20:11   ` Jernej Škrabec
  0 siblings, 0 replies; 4+ messages in thread
From: Jernej Škrabec @ 2023-03-14 20:11 UTC (permalink / raw)
  To: Vinod Koul, Kishon Vijay Abraham I, Chen-Yu Tsai, Samuel Holland,
	Andre Przywara, Wolfram Sang, Icenowy Zheng,
	Uwe Kleine-König
  Cc: linux-phy, linux-arm-kernel, linux-sunxi, kernel

Dne torek, 07. marec 2023 ob 12:58:30 CET je Uwe Kleine-König napisal(a):
> 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>
> ---

Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>

Best regards,
Jernej

>  drivers/phy/allwinner/phy-sun4i-usb.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c
> b/drivers/phy/allwinner/phy-sun4i-usb.c index fbcd7014ab43..6a74e5ce180a
> 100644
> --- a/drivers/phy/allwinner/phy-sun4i-usb.c
> +++ b/drivers/phy/allwinner/phy-sun4i-usb.c
> @@ -698,7 +698,7 @@ static struct phy *sun4i_usb_phy_xlate(struct device
> *dev, return data->phys[args->args[0]].phy;
>  }
> 
> -static int sun4i_usb_phy_remove(struct platform_device *pdev)
> +static void sun4i_usb_phy_remove(struct platform_device *pdev)
>  {
>  	struct device *dev = &pdev->dev;
>  	struct sun4i_usb_phy_data *data = dev_get_drvdata(dev);
> @@ -711,8 +711,6 @@ static int sun4i_usb_phy_remove(struct platform_device
> *pdev) devm_free_irq(dev, data->vbus_det_irq, data);
> 
>  	cancel_delayed_work_sync(&data->detect);
> -
> -	return 0;
>  }
> 
>  static const unsigned int sun4i_usb_phy0_cable[] = {
> @@ -1054,7 +1052,7 @@ MODULE_DEVICE_TABLE(of, sun4i_usb_phy_of_match);
> 
>  static struct platform_driver sun4i_usb_phy_driver = {
>  	.probe	= sun4i_usb_phy_probe,
> -	.remove	= sun4i_usb_phy_remove,
> +	.remove_new = sun4i_usb_phy_remove,
>  	.driver = {
>  		.of_match_table	= sun4i_usb_phy_of_match,
>  		.name  = "sun4i-usb-phy",





^ permalink raw reply	[flat|nested] 4+ 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 01/31] phy: allwinner: phy-sun4i-usb: " Uwe Kleine-König
@ 2023-03-20 11:38 ` Vinod Koul
  1 sibling, 0 replies; 4+ 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] 4+ messages in thread

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

Thread overview: 4+ 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 01/31] phy: allwinner: phy-sun4i-usb: " Uwe Kleine-König
2023-03-14 20:11   ` Jernej Škrabec
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