LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/9] net: freescale: Convert to platform remove callback returning void
@ 2023-03-13 10:36 Uwe Kleine-König
  2023-03-13 10:36 ` [PATCH net-next 6/9] net: fs_enet: " Uwe Kleine-König
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Uwe Kleine-König @ 2023-03-13 10:36 UTC (permalink / raw)
  To: Madalin Bucur, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Russell King, Wei Fang, Wolfram Sang, Chris Packham,
	Andy Shevchenko, Damien Le Moal, Christophe Leroy,
	Michael Ellerman, Mark Brown, Marc Kleine-Budde,
	Pantelis Antoniou, Claudiu Manoil, Li Yang
  Cc: netdev, Shenwei Wang, Clark Wang, NXP Linux Team, kernel,
	linuxppc-dev

Hello,

this patch set converts the platform drivers below
drivers/net/ethernet/freescale to the .remove_new() callback. Compared to the
traditional .remove() this one returns void. This is a good thing because the
driver core (mostly) ignores the return value and still removes the device
binding. This is part of a bigger effort to convert all 2000+ platform
drivers to this new callback to eventually change .remove() itself to
return void.

The first two patches here are preparation, the following patches
actually convert the drivers.

Best regards
Uwe

Uwe Kleine-König (9):
  net: dpaa: Improve error reporting
  net: fec: Don't return early on error in .remove()
  net: dpaa: Convert to platform remove callback returning void
  net: fec: Convert to platform remove callback returning void
  net: fman: Convert to platform remove callback returning void
  net: fs_enet: Convert to platform remove callback returning void
  net: fsl_pq_mdio: Convert to platform remove callback returning void
  net: gianfar: Convert to platform remove callback returning void
  net: ucc_geth: Convert to platform remove callback returning void

 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c        |  8 ++++----
 drivers/net/ethernet/freescale/fec_main.c             | 11 ++++-------
 drivers/net/ethernet/freescale/fec_mpc52xx.c          |  6 ++----
 drivers/net/ethernet/freescale/fec_mpc52xx_phy.c      |  6 ++----
 drivers/net/ethernet/freescale/fman/mac.c             |  5 ++---
 drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c |  5 ++---
 drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c  |  6 ++----
 drivers/net/ethernet/freescale/fs_enet/mii-fec.c      |  6 ++----
 drivers/net/ethernet/freescale/fsl_pq_mdio.c          |  6 ++----
 drivers/net/ethernet/freescale/gianfar.c              |  6 ++----
 drivers/net/ethernet/freescale/ucc_geth.c             |  6 ++----
 11 files changed, 26 insertions(+), 45 deletions(-)

base-commit: fe15c26ee26efa11741a7b632e9f23b01aca4cc6
-- 
2.39.1


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

* [PATCH net-next 6/9] net: fs_enet: Convert to platform remove callback returning void
  2023-03-13 10:36 [PATCH net-next 0/9] net: freescale: Convert to platform remove callback returning void Uwe Kleine-König
@ 2023-03-13 10:36 ` Uwe Kleine-König
  2023-03-13 10:36 ` [PATCH net-next 9/9] net: ucc_geth: " Uwe Kleine-König
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Uwe Kleine-König @ 2023-03-13 10:36 UTC (permalink / raw)
  To: Pantelis Antoniou, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni
  Cc: netdev, linuxppc-dev, 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/net/ethernet/freescale/fs_enet/fs_enet-main.c | 5 ++---
 drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c  | 6 ++----
 drivers/net/ethernet/freescale/fs_enet/mii-fec.c      | 6 ++----
 3 files changed, 6 insertions(+), 11 deletions(-)

diff --git a/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c b/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
index 8844a9a04fcf..f9f5b28cc72e 100644
--- a/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
+++ b/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
@@ -1051,7 +1051,7 @@ static int fs_enet_probe(struct platform_device *ofdev)
 	return ret;
 }
 
-static int fs_enet_remove(struct platform_device *ofdev)
+static void fs_enet_remove(struct platform_device *ofdev)
 {
 	struct net_device *ndev = platform_get_drvdata(ofdev);
 	struct fs_enet_private *fep = netdev_priv(ndev);
@@ -1066,7 +1066,6 @@ static int fs_enet_remove(struct platform_device *ofdev)
 	if (of_phy_is_fixed_link(ofdev->dev.of_node))
 		of_phy_deregister_fixed_link(ofdev->dev.of_node);
 	free_netdev(ndev);
-	return 0;
 }
 
 static const struct of_device_id fs_enet_match[] = {
@@ -1113,7 +1112,7 @@ static struct platform_driver fs_enet_driver = {
 		.of_match_table = fs_enet_match,
 	},
 	.probe = fs_enet_probe,
-	.remove = fs_enet_remove,
+	.remove_new = fs_enet_remove,
 };
 
 #ifdef CONFIG_NET_POLL_CONTROLLER
diff --git a/drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c b/drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c
index 21de56345503..91a69fc2f7c2 100644
--- a/drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c
+++ b/drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c
@@ -192,7 +192,7 @@ static int fs_enet_mdio_probe(struct platform_device *ofdev)
 	return ret;
 }
 
-static int fs_enet_mdio_remove(struct platform_device *ofdev)
+static void fs_enet_mdio_remove(struct platform_device *ofdev)
 {
 	struct mii_bus *bus = platform_get_drvdata(ofdev);
 	struct bb_info *bitbang = bus->priv;
@@ -201,8 +201,6 @@ static int fs_enet_mdio_remove(struct platform_device *ofdev)
 	free_mdio_bitbang(bus);
 	iounmap(bitbang->dir);
 	kfree(bitbang);
-
-	return 0;
 }
 
 static const struct of_device_id fs_enet_mdio_bb_match[] = {
@@ -219,7 +217,7 @@ static struct platform_driver fs_enet_bb_mdio_driver = {
 		.of_match_table = fs_enet_mdio_bb_match,
 	},
 	.probe = fs_enet_mdio_probe,
-	.remove = fs_enet_mdio_remove,
+	.remove_new = fs_enet_mdio_remove,
 };
 
 module_platform_driver(fs_enet_bb_mdio_driver);
diff --git a/drivers/net/ethernet/freescale/fs_enet/mii-fec.c b/drivers/net/ethernet/freescale/fs_enet/mii-fec.c
index d37d7a19a759..94bd76c6cf9e 100644
--- a/drivers/net/ethernet/freescale/fs_enet/mii-fec.c
+++ b/drivers/net/ethernet/freescale/fs_enet/mii-fec.c
@@ -187,7 +187,7 @@ static int fs_enet_mdio_probe(struct platform_device *ofdev)
 	return ret;
 }
 
-static int fs_enet_mdio_remove(struct platform_device *ofdev)
+static void fs_enet_mdio_remove(struct platform_device *ofdev)
 {
 	struct mii_bus *bus = platform_get_drvdata(ofdev);
 	struct fec_info *fec = bus->priv;
@@ -196,8 +196,6 @@ static int fs_enet_mdio_remove(struct platform_device *ofdev)
 	iounmap(fec->fecp);
 	kfree(fec);
 	mdiobus_free(bus);
-
-	return 0;
 }
 
 static const struct of_device_id fs_enet_mdio_fec_match[] = {
@@ -220,7 +218,7 @@ static struct platform_driver fs_enet_fec_mdio_driver = {
 		.of_match_table = fs_enet_mdio_fec_match,
 	},
 	.probe = fs_enet_mdio_probe,
-	.remove = fs_enet_mdio_remove,
+	.remove_new = fs_enet_mdio_remove,
 };
 
 module_platform_driver(fs_enet_fec_mdio_driver);
-- 
2.39.1


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

* [PATCH net-next 9/9] net: ucc_geth: Convert to platform remove callback returning void
  2023-03-13 10:36 [PATCH net-next 0/9] net: freescale: Convert to platform remove callback returning void Uwe Kleine-König
  2023-03-13 10:36 ` [PATCH net-next 6/9] net: fs_enet: " Uwe Kleine-König
@ 2023-03-13 10:36 ` Uwe Kleine-König
  2023-03-13 11:15 ` [PATCH net-next 0/9] net: freescale: " Madalin Bucur
  2023-03-13 15:05 ` Michal Kubiak
  3 siblings, 0 replies; 5+ messages in thread
From: Uwe Kleine-König @ 2023-03-13 10:36 UTC (permalink / raw)
  To: Li Yang, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni
  Cc: netdev, linuxppc-dev, 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/net/ethernet/freescale/ucc_geth.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/freescale/ucc_geth.c b/drivers/net/ethernet/freescale/ucc_geth.c
index 7a4cb4f07c32..2b3a15f24e7c 100644
--- a/drivers/net/ethernet/freescale/ucc_geth.c
+++ b/drivers/net/ethernet/freescale/ucc_geth.c
@@ -3753,7 +3753,7 @@ static int ucc_geth_probe(struct platform_device* ofdev)
 	return err;
 }
 
-static int ucc_geth_remove(struct platform_device* ofdev)
+static void ucc_geth_remove(struct platform_device* ofdev)
 {
 	struct net_device *dev = platform_get_drvdata(ofdev);
 	struct ucc_geth_private *ugeth = netdev_priv(dev);
@@ -3767,8 +3767,6 @@ static int ucc_geth_remove(struct platform_device* ofdev)
 	of_node_put(ugeth->ug_info->phy_node);
 	kfree(ugeth->ug_info);
 	free_netdev(dev);
-
-	return 0;
 }
 
 static const struct of_device_id ucc_geth_match[] = {
@@ -3787,7 +3785,7 @@ static struct platform_driver ucc_geth_driver = {
 		.of_match_table = ucc_geth_match,
 	},
 	.probe		= ucc_geth_probe,
-	.remove		= ucc_geth_remove,
+	.remove_new	= ucc_geth_remove,
 	.suspend	= ucc_geth_suspend,
 	.resume		= ucc_geth_resume,
 };
-- 
2.39.1


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

* RE: [PATCH net-next 0/9] net: freescale: Convert to platform remove callback returning void
  2023-03-13 10:36 [PATCH net-next 0/9] net: freescale: Convert to platform remove callback returning void Uwe Kleine-König
  2023-03-13 10:36 ` [PATCH net-next 6/9] net: fs_enet: " Uwe Kleine-König
  2023-03-13 10:36 ` [PATCH net-next 9/9] net: ucc_geth: " Uwe Kleine-König
@ 2023-03-13 11:15 ` Madalin Bucur
  2023-03-13 15:05 ` Michal Kubiak
  3 siblings, 0 replies; 5+ messages in thread
From: Madalin Bucur @ 2023-03-13 11:15 UTC (permalink / raw)
  To: Uwe Kleine-König, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Russell King, Wei Fang, Wolfram Sang,
	Chris Packham, Andy Shevchenko, Damien Le Moal, Christophe Leroy,
	Michael Ellerman, Mark Brown, Marc Kleine-Budde,
	Pantelis Antoniou, Claudiu Manoil, Leo Li
  Cc: netdev@vger.kernel.org, Shenwei Wang, Clark Wang, dl-linux-imx,
	kernel@pengutronix.de, linuxppc-dev@lists.ozlabs.org

> -----Original Message-----
> From: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> Sent: 13 March 2023 12:37
> To: Madalin Bucur <madalin.bucur@nxp.com>; David S. Miller
> <davem@davemloft.net>; Eric Dumazet <edumazet@google.com>; Jakub Kicinski
> <kuba@kernel.org>; Paolo Abeni <pabeni@redhat.com>; Russell King
> <linux@armlinux.org.uk>; Wei Fang <wei.fang@nxp.com>; Wolfram Sang
> <wsa@kernel.org>; Chris Packham <chris.packham@alliedtelesis.co.nz>; Andy
> Shevchenko <andriy.shevchenko@linux.intel.com>; Damien Le Moal
> <damien.lemoal@opensource.wdc.com>; Christophe Leroy
> <christophe.leroy@csgroup.eu>; Michael Ellerman <mpe@ellerman.id.au>;
> Mark Brown <broonie@kernel.org>; Marc Kleine-Budde <mkl@pengutronix.de>;
> Pantelis Antoniou <pantelis.antoniou@gmail.com>; Claudiu Manoil
> <claudiu.manoil@nxp.com>; Leo Li <leoyang.li@nxp.com>
> Cc: netdev@vger.kernel.org; kernel@pengutronix.de; Shenwei Wang
> <shenwei.wang@nxp.com>; Clark Wang <xiaoning.wang@nxp.com>; dl-linux-imx
> <linux-imx@nxp.com>; linuxppc-dev@lists.ozlabs.org
> Subject: [PATCH net-next 0/9] net: freescale: Convert to platform remove
> callback returning void
> 
> Hello,
> 
> this patch set converts the platform drivers below
> drivers/net/ethernet/freescale to the .remove_new() callback. Compared to
> the
> traditional .remove() this one returns void. This is a good thing because
> the
> driver core (mostly) ignores the return value and still removes the
> device
> binding. This is part of a bigger effort to convert all 2000+ platform
> drivers to this new callback to eventually change .remove() itself to
> return void.
> 
> The first two patches here are preparation, the following patches
> actually convert the drivers.
> 
> Best regards
> Uwe
> 
> Uwe Kleine-König (9):
>   net: dpaa: Improve error reporting
>   net: fec: Don't return early on error in .remove()
>   net: dpaa: Convert to platform remove callback returning void
>   net: fec: Convert to platform remove callback returning void
>   net: fman: Convert to platform remove callback returning void
>   net: fs_enet: Convert to platform remove callback returning void
>   net: fsl_pq_mdio: Convert to platform remove callback returning void
>   net: gianfar: Convert to platform remove callback returning void
>   net: ucc_geth: Convert to platform remove callback returning void
> 
>  drivers/net/ethernet/freescale/dpaa/dpaa_eth.c        |  8 ++++----
>  drivers/net/ethernet/freescale/fec_main.c             | 11 ++++-------
>  drivers/net/ethernet/freescale/fec_mpc52xx.c          |  6 ++----
>  drivers/net/ethernet/freescale/fec_mpc52xx_phy.c      |  6 ++----
>  drivers/net/ethernet/freescale/fman/mac.c             |  5 ++---
>  drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c |  5 ++---
>  drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c  |  6 ++----
>  drivers/net/ethernet/freescale/fs_enet/mii-fec.c      |  6 ++----
>  drivers/net/ethernet/freescale/fsl_pq_mdio.c          |  6 ++----
>  drivers/net/ethernet/freescale/gianfar.c              |  6 ++----
>  drivers/net/ethernet/freescale/ucc_geth.c             |  6 ++----
>  11 files changed, 26 insertions(+), 45 deletions(-)
> 
> base-commit: fe15c26ee26efa11741a7b632e9f23b01aca4cc6
> --
> 2.39.1

For the FMan and DPAA drivers,

Acked-by: Madalin Bucur <madalin.bucur@oss.nxp.com>

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

* Re: [PATCH net-next 0/9] net: freescale: Convert to platform remove callback returning void
  2023-03-13 10:36 [PATCH net-next 0/9] net: freescale: Convert to platform remove callback returning void Uwe Kleine-König
                   ` (2 preceding siblings ...)
  2023-03-13 11:15 ` [PATCH net-next 0/9] net: freescale: " Madalin Bucur
@ 2023-03-13 15:05 ` Michal Kubiak
  3 siblings, 0 replies; 5+ messages in thread
From: Michal Kubiak @ 2023-03-13 15:05 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: Madalin Bucur, Eric Dumazet, Damien Le Moal, Russell King,
	Shenwei Wang, Clark Wang, NXP Linux Team, Jakub Kicinski,
	Paolo Abeni, Claudiu Manoil, Chris Packham, Wei Fang,
	Andy Shevchenko, netdev, Li Yang, Wolfram Sang, Mark Brown,
	kernel, Marc Kleine-Budde, linuxppc-dev, David S. Miller

On Mon, Mar 13, 2023 at 11:36:44AM +0100, Uwe Kleine-König wrote:
> Hello,
> 
> this patch set converts the platform drivers below
> drivers/net/ethernet/freescale to the .remove_new() callback. Compared to the
> traditional .remove() this one returns void. This is a good thing because the
> driver core (mostly) ignores the return value and still removes the device
> binding. This is part of a bigger effort to convert all 2000+ platform
> drivers to this new callback to eventually change .remove() itself to
> return void.
> 
> The first two patches here are preparation, the following patches
> actually convert the drivers.
> 
> Best regards
> Uwe
> 

For entire series:
Reviewed-by: Michal Kubiak <michal.kubiak@intel.com>

> Uwe Kleine-König (9):
>   net: dpaa: Improve error reporting
>   net: fec: Don't return early on error in .remove()
>   net: dpaa: Convert to platform remove callback returning void
>   net: fec: Convert to platform remove callback returning void
>   net: fman: Convert to platform remove callback returning void
>   net: fs_enet: Convert to platform remove callback returning void
>   net: fsl_pq_mdio: Convert to platform remove callback returning void
>   net: gianfar: Convert to platform remove callback returning void
>   net: ucc_geth: Convert to platform remove callback returning void
> 
>  drivers/net/ethernet/freescale/dpaa/dpaa_eth.c        |  8 ++++----
>  drivers/net/ethernet/freescale/fec_main.c             | 11 ++++-------
>  drivers/net/ethernet/freescale/fec_mpc52xx.c          |  6 ++----
>  drivers/net/ethernet/freescale/fec_mpc52xx_phy.c      |  6 ++----
>  drivers/net/ethernet/freescale/fman/mac.c             |  5 ++---
>  drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c |  5 ++---
>  drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c  |  6 ++----
>  drivers/net/ethernet/freescale/fs_enet/mii-fec.c      |  6 ++----
>  drivers/net/ethernet/freescale/fsl_pq_mdio.c          |  6 ++----
>  drivers/net/ethernet/freescale/gianfar.c              |  6 ++----
>  drivers/net/ethernet/freescale/ucc_geth.c             |  6 ++----
>  11 files changed, 26 insertions(+), 45 deletions(-)
> 
> base-commit: fe15c26ee26efa11741a7b632e9f23b01aca4cc6
> -- 
> 2.39.1
> 

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

end of thread, other threads:[~2023-03-13 15:32 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-13 10:36 [PATCH net-next 0/9] net: freescale: Convert to platform remove callback returning void Uwe Kleine-König
2023-03-13 10:36 ` [PATCH net-next 6/9] net: fs_enet: " Uwe Kleine-König
2023-03-13 10:36 ` [PATCH net-next 9/9] net: ucc_geth: " Uwe Kleine-König
2023-03-13 11:15 ` [PATCH net-next 0/9] net: freescale: " Madalin Bucur
2023-03-13 15:05 ` Michal Kubiak

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