* [PATCH 0/8] ARM: Convert to platform remove callback returning void
@ 2023-03-08 10:00 Uwe Kleine-König
2023-03-08 10:00 ` [PATCH 1/8] ARM: locomo: " Uwe Kleine-König
` (8 more replies)
0 siblings, 9 replies; 12+ messages in thread
From: Uwe Kleine-König @ 2023-03-08 10:00 UTC (permalink / raw)
To: Russell King, Viresh Kumar, Arnd Bergmann, Ulf Hansson,
Dmitry Torokhov, Alan Stern, Mark Brown, Shawn Guo, Sascha Hauer,
Aaro Koskinen, Janusz Krzysztofik, Tony Lindgren, Daniel Mack,
Haojian Zhuang, Robert Jarzmik
Cc: linux-arm-kernel, kernel, Fabio Estevam, NXP Linux Team,
linux-omap
Hello,
this patch series adapts the platform drivers below arch/arm 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 arch/arm 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.
I'm unsure who will pick up this series. Will it go as a whole via arm-soc? Or
will the individual maintainers pick it up?
Best regards
Uwe
Uwe Kleine-König (8):
ARM: locomo: Convert to platform remove callback returning void
ARM: sa1111: Convert to platform remove callback returning void
ARM: scoop: Convert to platform remove callback returning void
ARM: imx: mmdc: Convert to platform remove callback returning void
ARM: omap1: omap-dma: Convert to platform remove callback returning
void
ARM: pxa: sharpsl_pm: Convert to platform remove callback returning
void
ARM: sa1100: jornada720_ssp: Convert to platform remove callback
returning void
ARM: sa1100: neponset: Convert to platform remove callback returning
void
arch/arm/common/locomo.c | 6 ++----
arch/arm/common/sa1111.c | 6 ++----
arch/arm/common/scoop.c | 6 ++----
arch/arm/mach-imx/mmdc.c | 5 ++---
arch/arm/mach-omap1/omap-dma.c | 6 ++----
arch/arm/mach-pxa/sharpsl_pm.c | 6 ++----
arch/arm/mach-sa1100/jornada720_ssp.c | 5 ++---
arch/arm/mach-sa1100/neponset.c | 6 ++----
8 files changed, 16 insertions(+), 30 deletions(-)
base-commit: fe15c26ee26efa11741a7b632e9f23b01aca4cc6
--
2.39.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 1/8] ARM: locomo: Convert to platform remove callback returning void
2023-03-08 10:00 [PATCH 0/8] ARM: Convert to platform remove callback returning void Uwe Kleine-König
@ 2023-03-08 10:00 ` Uwe Kleine-König
2023-03-08 10:00 ` [PATCH 2/8] ARM: sa1111: " Uwe Kleine-König
` (7 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Uwe Kleine-König @ 2023-03-08 10:00 UTC (permalink / raw)
To: Russell King, Viresh Kumar, Arnd Bergmann, Ulf Hansson,
Dmitry Torokhov
Cc: linux-arm-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 (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>
---
arch/arm/common/locomo.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/arch/arm/common/locomo.c b/arch/arm/common/locomo.c
index da30a4d4f35c..309b74783468 100644
--- a/arch/arm/common/locomo.c
+++ b/arch/arm/common/locomo.c
@@ -494,7 +494,7 @@ static int locomo_probe(struct platform_device *dev)
return __locomo_probe(&dev->dev, mem, irq);
}
-static int locomo_remove(struct platform_device *dev)
+static void locomo_remove(struct platform_device *dev)
{
struct locomo *lchip = platform_get_drvdata(dev);
@@ -502,8 +502,6 @@ static int locomo_remove(struct platform_device *dev)
__locomo_remove(lchip);
platform_set_drvdata(dev, NULL);
}
-
- return 0;
}
/*
@@ -514,7 +512,7 @@ static int locomo_remove(struct platform_device *dev)
*/
static struct platform_driver locomo_device_driver = {
.probe = locomo_probe,
- .remove = locomo_remove,
+ .remove_new = locomo_remove,
#ifdef CONFIG_PM
.suspend = locomo_suspend,
.resume = locomo_resume,
--
2.39.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/8] ARM: sa1111: Convert to platform remove callback returning void
2023-03-08 10:00 [PATCH 0/8] ARM: Convert to platform remove callback returning void Uwe Kleine-König
2023-03-08 10:00 ` [PATCH 1/8] ARM: locomo: " Uwe Kleine-König
@ 2023-03-08 10:00 ` Uwe Kleine-König
2023-03-08 10:00 ` [PATCH 3/8] ARM: scoop: " Uwe Kleine-König
` (6 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Uwe Kleine-König @ 2023-03-08 10:00 UTC (permalink / raw)
To: Russell King, Arnd Bergmann, Alan Stern, Dmitry Torokhov,
Mark Brown
Cc: linux-arm-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 (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>
---
arch/arm/common/sa1111.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c
index f5e6990b8856..aad6ba236f0f 100644
--- a/arch/arm/common/sa1111.c
+++ b/arch/arm/common/sa1111.c
@@ -1123,7 +1123,7 @@ static int sa1111_probe(struct platform_device *pdev)
return __sa1111_probe(&pdev->dev, mem, irq);
}
-static int sa1111_remove(struct platform_device *pdev)
+static void sa1111_remove(struct platform_device *pdev)
{
struct sa1111 *sachip = platform_get_drvdata(pdev);
@@ -1135,8 +1135,6 @@ static int sa1111_remove(struct platform_device *pdev)
__sa1111_remove(sachip);
platform_set_drvdata(pdev, NULL);
}
-
- return 0;
}
static struct dev_pm_ops sa1111_pm_ops = {
@@ -1155,7 +1153,7 @@ static struct dev_pm_ops sa1111_pm_ops = {
*/
static struct platform_driver sa1111_device_driver = {
.probe = sa1111_probe,
- .remove = sa1111_remove,
+ .remove_new = sa1111_remove,
.driver = {
.name = "sa1111",
.pm = &sa1111_pm_ops,
--
2.39.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 3/8] ARM: scoop: Convert to platform remove callback returning void
2023-03-08 10:00 [PATCH 0/8] ARM: Convert to platform remove callback returning void Uwe Kleine-König
2023-03-08 10:00 ` [PATCH 1/8] ARM: locomo: " Uwe Kleine-König
2023-03-08 10:00 ` [PATCH 2/8] ARM: sa1111: " Uwe Kleine-König
@ 2023-03-08 10:00 ` Uwe Kleine-König
2023-03-08 10:00 ` [PATCH 4/8] ARM: imx: mmdc: " Uwe Kleine-König
` (5 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Uwe Kleine-König @ 2023-03-08 10:00 UTC (permalink / raw)
To: Russell King, Arnd Bergmann; +Cc: linux-arm-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 (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>
---
arch/arm/common/scoop.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/arch/arm/common/scoop.c b/arch/arm/common/scoop.c
index e74c5bfdc6d3..9018c7240166 100644
--- a/arch/arm/common/scoop.c
+++ b/arch/arm/common/scoop.c
@@ -236,7 +236,7 @@ static int scoop_probe(struct platform_device *pdev)
return ret;
}
-static int scoop_remove(struct platform_device *pdev)
+static void scoop_remove(struct platform_device *pdev)
{
struct scoop_dev *sdev = platform_get_drvdata(pdev);
@@ -246,13 +246,11 @@ static int scoop_remove(struct platform_device *pdev)
platform_set_drvdata(pdev, NULL);
iounmap(sdev->base);
kfree(sdev);
-
- return 0;
}
static struct platform_driver scoop_driver = {
.probe = scoop_probe,
- .remove = scoop_remove,
+ .remove_new = scoop_remove,
.suspend = scoop_suspend,
.resume = scoop_resume,
.driver = {
--
2.39.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 4/8] ARM: imx: mmdc: Convert to platform remove callback returning void
2023-03-08 10:00 [PATCH 0/8] ARM: Convert to platform remove callback returning void Uwe Kleine-König
` (2 preceding siblings ...)
2023-03-08 10:00 ` [PATCH 3/8] ARM: scoop: " Uwe Kleine-König
@ 2023-03-08 10:00 ` Uwe Kleine-König
2023-03-14 6:52 ` Shawn Guo
2023-03-08 10:00 ` [PATCH 5/8] ARM: omap1: omap-dma: " Uwe Kleine-König
` (4 subsequent siblings)
8 siblings, 1 reply; 12+ messages in thread
From: Uwe Kleine-König @ 2023-03-08 10:00 UTC (permalink / raw)
To: Russell King, Shawn Guo, Sascha Hauer, Arnd Bergmann
Cc: Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
linux-arm-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>
---
arch/arm/mach-imx/mmdc.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/arch/arm/mach-imx/mmdc.c b/arch/arm/mach-imx/mmdc.c
index b9efe9da06e0..2157493b78a9 100644
--- a/arch/arm/mach-imx/mmdc.c
+++ b/arch/arm/mach-imx/mmdc.c
@@ -456,7 +456,7 @@ static int mmdc_pmu_init(struct mmdc_pmu *pmu_mmdc,
return pmu_mmdc->id;
}
-static int imx_mmdc_remove(struct platform_device *pdev)
+static void imx_mmdc_remove(struct platform_device *pdev)
{
struct mmdc_pmu *pmu_mmdc = platform_get_drvdata(pdev);
@@ -466,7 +466,6 @@ static int imx_mmdc_remove(struct platform_device *pdev)
iounmap(pmu_mmdc->mmdc_base);
clk_disable_unprepare(pmu_mmdc->mmdc_ipg_clk);
kfree(pmu_mmdc);
- return 0;
}
static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_base,
@@ -592,7 +591,7 @@ static struct platform_driver imx_mmdc_driver = {
.of_match_table = imx_mmdc_dt_ids,
},
.probe = imx_mmdc_probe,
- .remove = imx_mmdc_remove,
+ .remove_new = imx_mmdc_remove,
};
static int __init imx_mmdc_init(void)
--
2.39.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 5/8] ARM: omap1: omap-dma: Convert to platform remove callback returning void
2023-03-08 10:00 [PATCH 0/8] ARM: Convert to platform remove callback returning void Uwe Kleine-König
` (3 preceding siblings ...)
2023-03-08 10:00 ` [PATCH 4/8] ARM: imx: mmdc: " Uwe Kleine-König
@ 2023-03-08 10:00 ` Uwe Kleine-König
2023-03-08 10:00 ` [PATCH 6/8] ARM: pxa: sharpsl_pm: " Uwe Kleine-König
` (3 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Uwe Kleine-König @ 2023-03-08 10:00 UTC (permalink / raw)
To: Aaro Koskinen, Janusz Krzysztofik, Tony Lindgren, Russell King,
Arnd Bergmann
Cc: linux-arm-kernel, linux-omap, 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>
---
arch/arm/mach-omap1/omap-dma.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/arch/arm/mach-omap1/omap-dma.c b/arch/arm/mach-omap1/omap-dma.c
index f7e62de427f3..9ee472f8ead1 100644
--- a/arch/arm/mach-omap1/omap-dma.c
+++ b/arch/arm/mach-omap1/omap-dma.c
@@ -833,7 +833,7 @@ static int omap_system_dma_probe(struct platform_device *pdev)
return ret;
}
-static int omap_system_dma_remove(struct platform_device *pdev)
+static void omap_system_dma_remove(struct platform_device *pdev)
{
int dma_irq, irq_rel = 0;
@@ -841,13 +841,11 @@ static int omap_system_dma_remove(struct platform_device *pdev)
dma_irq = platform_get_irq(pdev, irq_rel);
free_irq(dma_irq, (void *)(irq_rel + 1));
}
-
- return 0;
}
static struct platform_driver omap_system_dma_driver = {
.probe = omap_system_dma_probe,
- .remove = omap_system_dma_remove,
+ .remove_new = omap_system_dma_remove,
.driver = {
.name = "omap_dma_system"
},
--
2.39.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 6/8] ARM: pxa: sharpsl_pm: Convert to platform remove callback returning void
2023-03-08 10:00 [PATCH 0/8] ARM: Convert to platform remove callback returning void Uwe Kleine-König
` (4 preceding siblings ...)
2023-03-08 10:00 ` [PATCH 5/8] ARM: omap1: omap-dma: " Uwe Kleine-König
@ 2023-03-08 10:00 ` Uwe Kleine-König
2023-03-08 10:00 ` [PATCH 7/8] ARM: sa1100: jornada720_ssp: " Uwe Kleine-König
` (2 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Uwe Kleine-König @ 2023-03-08 10:00 UTC (permalink / raw)
To: Daniel Mack, Haojian Zhuang, Robert Jarzmik, Russell King,
Arnd Bergmann
Cc: linux-arm-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 (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>
---
arch/arm/mach-pxa/sharpsl_pm.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/arch/arm/mach-pxa/sharpsl_pm.c b/arch/arm/mach-pxa/sharpsl_pm.c
index 929cc51ed7c2..d29bdcd5270e 100644
--- a/arch/arm/mach-pxa/sharpsl_pm.c
+++ b/arch/arm/mach-pxa/sharpsl_pm.c
@@ -890,7 +890,7 @@ static int sharpsl_pm_probe(struct platform_device *pdev)
return 0;
}
-static int sharpsl_pm_remove(struct platform_device *pdev)
+static void sharpsl_pm_remove(struct platform_device *pdev)
{
suspend_set_ops(NULL);
@@ -917,13 +917,11 @@ static int sharpsl_pm_remove(struct platform_device *pdev)
del_timer_sync(&sharpsl_pm.chrg_full_timer);
del_timer_sync(&sharpsl_pm.ac_timer);
-
- return 0;
}
static struct platform_driver sharpsl_pm_driver = {
.probe = sharpsl_pm_probe,
- .remove = sharpsl_pm_remove,
+ .remove_new = sharpsl_pm_remove,
.suspend = sharpsl_pm_suspend,
.resume = sharpsl_pm_resume,
.driver = {
--
2.39.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 7/8] ARM: sa1100: jornada720_ssp: Convert to platform remove callback returning void
2023-03-08 10:00 [PATCH 0/8] ARM: Convert to platform remove callback returning void Uwe Kleine-König
` (5 preceding siblings ...)
2023-03-08 10:00 ` [PATCH 6/8] ARM: pxa: sharpsl_pm: " Uwe Kleine-König
@ 2023-03-08 10:00 ` Uwe Kleine-König
2023-03-08 10:00 ` [PATCH 8/8] ARM: sa1100: neponset: " Uwe Kleine-König
2023-03-08 15:06 ` [PATCH 0/8] ARM: " Arnd Bergmann
8 siblings, 0 replies; 12+ messages in thread
From: Uwe Kleine-König @ 2023-03-08 10:00 UTC (permalink / raw)
To: Russell King, Arnd Bergmann; +Cc: linux-arm-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 (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>
---
arch/arm/mach-sa1100/jornada720_ssp.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/arch/arm/mach-sa1100/jornada720_ssp.c b/arch/arm/mach-sa1100/jornada720_ssp.c
index 1dbe98948ce3..67f72ca984b2 100644
--- a/arch/arm/mach-sa1100/jornada720_ssp.c
+++ b/arch/arm/mach-sa1100/jornada720_ssp.c
@@ -175,18 +175,17 @@ static int jornada_ssp_probe(struct platform_device *dev)
return 0;
};
-static int jornada_ssp_remove(struct platform_device *dev)
+static void jornada_ssp_remove(struct platform_device *dev)
{
/* Note that this doesn't actually remove the driver, since theres nothing to remove
* It just makes sure everything is turned off */
GPSR = GPIO_GPIO25;
ssp_exit();
- return 0;
};
struct platform_driver jornadassp_driver = {
.probe = jornada_ssp_probe,
- .remove = jornada_ssp_remove,
+ .remove_new = jornada_ssp_remove,
.driver = {
.name = "jornada_ssp",
},
--
2.39.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 8/8] ARM: sa1100: neponset: Convert to platform remove callback returning void
2023-03-08 10:00 [PATCH 0/8] ARM: Convert to platform remove callback returning void Uwe Kleine-König
` (6 preceding siblings ...)
2023-03-08 10:00 ` [PATCH 7/8] ARM: sa1100: jornada720_ssp: " Uwe Kleine-König
@ 2023-03-08 10:00 ` Uwe Kleine-König
2023-03-08 15:06 ` [PATCH 0/8] ARM: " Arnd Bergmann
8 siblings, 0 replies; 12+ messages in thread
From: Uwe Kleine-König @ 2023-03-08 10:00 UTC (permalink / raw)
To: Russell King, Arnd Bergmann; +Cc: linux-arm-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 (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>
---
arch/arm/mach-sa1100/neponset.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/arch/arm/mach-sa1100/neponset.c b/arch/arm/mach-sa1100/neponset.c
index 6876bc1e33b4..0ef0ebbf31ac 100644
--- a/arch/arm/mach-sa1100/neponset.c
+++ b/arch/arm/mach-sa1100/neponset.c
@@ -376,7 +376,7 @@ static int neponset_probe(struct platform_device *dev)
return ret;
}
-static int neponset_remove(struct platform_device *dev)
+static void neponset_remove(struct platform_device *dev)
{
struct neponset_drvdata *d = platform_get_drvdata(dev);
int irq = platform_get_irq(dev, 0);
@@ -395,8 +395,6 @@ static int neponset_remove(struct platform_device *dev)
nep = NULL;
iounmap(d->base);
kfree(d);
-
- return 0;
}
#ifdef CONFIG_PM_SLEEP
@@ -425,7 +423,7 @@ static const struct dev_pm_ops neponset_pm_ops = {
static struct platform_driver neponset_device_driver = {
.probe = neponset_probe,
- .remove = neponset_remove,
+ .remove_new = neponset_remove,
.driver = {
.name = "neponset",
.pm = PM_OPS,
--
2.39.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 0/8] ARM: Convert to platform remove callback returning void
2023-03-08 10:00 [PATCH 0/8] ARM: Convert to platform remove callback returning void Uwe Kleine-König
` (7 preceding siblings ...)
2023-03-08 10:00 ` [PATCH 8/8] ARM: sa1100: neponset: " Uwe Kleine-König
@ 2023-03-08 15:06 ` Arnd Bergmann
2023-03-08 16:01 ` Uwe Kleine-König
8 siblings, 1 reply; 12+ messages in thread
From: Arnd Bergmann @ 2023-03-08 15:06 UTC (permalink / raw)
To: Uwe Kleine-König, Russell King, Viresh Kumar, Ulf Hansson,
Dmitry Torokhov, Alan Stern, Mark Brown, Shawn Guo, Sascha Hauer,
Aaro Koskinen, Janusz Krzysztofik, Tony Lindgren, Daniel Mack,
Haojian Zhuang, Robert Jarzmik
Cc: linux-arm-kernel, Pengutronix Kernel Team, Fabio Estevam,
NXP Linux Team, Linux-OMAP
On Wed, Mar 8, 2023, at 11:00, Uwe Kleine-König wrote:
> Hello,
>
> this patch series adapts the platform drivers below arch/arm 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 arch/arm 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.
Looks good to me,
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
> I'm unsure who will pick up this series. Will it go as a whole via arm-soc? Or
> will the individual maintainers pick it up?
I can take it through the soc tree, please send it to
soc@kernel.org once you are done getting Acks.
Since all eight patches in the series have the exact same
changelog text and are all trivial, I'd prefer them to be
folded into a single patch if that works for you.
Arnd
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 0/8] ARM: Convert to platform remove callback returning void
2023-03-08 15:06 ` [PATCH 0/8] ARM: " Arnd Bergmann
@ 2023-03-08 16:01 ` Uwe Kleine-König
0 siblings, 0 replies; 12+ messages in thread
From: Uwe Kleine-König @ 2023-03-08 16:01 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Russell King, Viresh Kumar, Ulf Hansson, Dmitry Torokhov,
Alan Stern, Mark Brown, Shawn Guo, Sascha Hauer, Aaro Koskinen,
Janusz Krzysztofik, Tony Lindgren, Daniel Mack, Haojian Zhuang,
Robert Jarzmik, Linux-OMAP, Fabio Estevam,
Pengutronix Kernel Team, linux-arm-kernel, NXP Linux Team
[-- Attachment #1.1: Type: text/plain, Size: 2138 bytes --]
On Wed, Mar 08, 2023 at 04:06:47PM +0100, Arnd Bergmann wrote:
> On Wed, Mar 8, 2023, at 11:00, Uwe Kleine-König wrote:
> > Hello,
> >
> > this patch series adapts the platform drivers below arch/arm 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 arch/arm 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.
>
> Looks good to me,
>
> Reviewed-by: Arnd Bergmann <arnd@arndb.de>
>
> > I'm unsure who will pick up this series. Will it go as a whole via arm-soc? Or
> > will the individual maintainers pick it up?
>
> I can take it through the soc tree, please send it to
> soc@kernel.org once you are done getting Acks.
>
> Since all eight patches in the series have the exact same
> changelog text and are all trivial, I'd prefer them to be
> folded into a single patch if that works for you.
No, they are not all identical, they all have their individual subject
prefix :-)
Honestly: I don't care much. I split it because for most other
subsystems that's what the respective maintainers seem to prefer.
I'll care for that, i.e. wait a bit to give others the chance to ack (or
object) and then send it as you recommended. Thanks.
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | https://www.pengutronix.de/ |
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
[-- Attachment #2: Type: text/plain, Size: 176 bytes --]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 4/8] ARM: imx: mmdc: Convert to platform remove callback returning void
2023-03-08 10:00 ` [PATCH 4/8] ARM: imx: mmdc: " Uwe Kleine-König
@ 2023-03-14 6:52 ` Shawn Guo
0 siblings, 0 replies; 12+ messages in thread
From: Shawn Guo @ 2023-03-14 6:52 UTC (permalink / raw)
To: Uwe Kleine-König
Cc: Russell King, Sascha Hauer, Arnd Bergmann,
Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
linux-arm-kernel
On Wed, Mar 08, 2023 at 11:00:08AM +0100, Uwe Kleine-König 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>
Acked-by: Shawn Guo <shawnguo@kernel.org>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2023-03-14 6:53 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-08 10:00 [PATCH 0/8] ARM: Convert to platform remove callback returning void Uwe Kleine-König
2023-03-08 10:00 ` [PATCH 1/8] ARM: locomo: " Uwe Kleine-König
2023-03-08 10:00 ` [PATCH 2/8] ARM: sa1111: " Uwe Kleine-König
2023-03-08 10:00 ` [PATCH 3/8] ARM: scoop: " Uwe Kleine-König
2023-03-08 10:00 ` [PATCH 4/8] ARM: imx: mmdc: " Uwe Kleine-König
2023-03-14 6:52 ` Shawn Guo
2023-03-08 10:00 ` [PATCH 5/8] ARM: omap1: omap-dma: " Uwe Kleine-König
2023-03-08 10:00 ` [PATCH 6/8] ARM: pxa: sharpsl_pm: " Uwe Kleine-König
2023-03-08 10:00 ` [PATCH 7/8] ARM: sa1100: jornada720_ssp: " Uwe Kleine-König
2023-03-08 10:00 ` [PATCH 8/8] ARM: sa1100: neponset: " Uwe Kleine-König
2023-03-08 15:06 ` [PATCH 0/8] ARM: " Arnd Bergmann
2023-03-08 16:01 ` 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;
as well as URLs for NNTP newsgroup(s).