* [PATCH 00/24] staging: Convert to platform remove callback returning void
@ 2023-04-03 15:39 Uwe Kleine-König
2023-04-03 15:39 ` [PATCH 06/24] staging: media: atmel-sama5d2-isc: " Uwe Kleine-König
` (11 more replies)
0 siblings, 12 replies; 25+ messages in thread
From: Uwe Kleine-König @ 2023-04-03 15:39 UTC (permalink / raw)
To: Greg Kroah-Hartman, Deepak R Varma, Yuan Can, Simon Horman,
Sven Van Asbroeck, Vaibhav Hiremath, Johan Hovold, Alex Elder,
Eugen Hristev, Mauro Carvalho Chehab, Nicolas Ferre,
Alexandre Belloni, Claudiu Beznea, Steve Longerbeam,
Philipp Zabel, Shawn Guo, Sascha Hauer, Neil Armstrong,
Kevin Hilman, Laurent Pinchart, Ezequiel Garcia, Maxime Ripard,
Paul Kocialkowski, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland,
Parthiban Veerasooran, Christian Gromm, Davidlohr Bueso,
Marc Dietrich, Florian Fainelli, Ray Jui, Scott Branden,
Umang Jain, Andy Shevchenko, Adrien Thierry, Stefan Wahren,
Fabio M. De Francesco, Phil Elwell, Jakob Koschel
Cc: linux-staging, kernel, greybus-dev, linux-media, linux-arm-kernel,
Fabio Estevam, NXP Linux Team, Jerome Brunet, Martin Blumenstingl,
linux-amlogic, linux-rockchip, linux-sunxi, ac100, linux-tegra,
Broadcom internal kernel review list, linux-rpi-kernel
Hello,
this series adapts the platform drivers below drivers/staging 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 staging already return zero in their remove callback, so
they can be trivially converted.
The changes to the individual drivers are all orthogonal. If I need to
resend some patches because of some review feedback, I'd like to only
send the patches that actually needed changes, so please pick up the
remaining patches that don't need changing to reduce the amount of mail.
Best regards
Uwe
Uwe Kleine-König (24):
staging: axis-fifo: Convert to platform remove callback returning void
staging: emxx_udc: Convert to platform remove callback returning void
staging: fieldbus: arcx-anybus: Convert to platform remove callback
returning void
staging: greybus: arche-apb-ctrl: Convert to platform remove callback
returning void
staging: greybus: arche: Convert to platform remove callback returning
void
staging: media: atmel-sama5d2-isc: Convert to platform remove callback
returning void
staging: media: atmel-sama7g5-isc: Convert to platform remove callback
returning void
staging: media: imx-media-csi: Convert to platform remove callback
returning void
staging: media: imx-media-dev: Convert to platform remove callback
returning void
staging: media: imx6-mipi-csi2: Convert to platform remove callback
returning void
staging: media: imx8mq-mipi-csi2: Convert to platform remove callback
returning void
staging: media: meson: vdec: Convert to platform remove callback
returning void
staging: media: omap4iss: Convert to platform remove callback
returning void
staging: media: rkvdec: Convert to platform remove callback returning
void
staging: media: sunxi: cedrus: Convert to platform remove callback
returning void
staging: media: sun6i-isp: Convert to platform remove callback
returning void
staging: most: dim2: Convert to platform remove callback returning
void
staging: nvec: Convert to platform remove callback returning void
staging: nvec: nvec_kbd: Convert to platform remove callback returning
void
staging: nvec_power: Convert to platform remove callback returning
void
staging: nvec_ps2: Convert to platform remove callback returning void
staging: octeon: ethernet: Convert to platform remove callback
returning void
staging: vc04_services: bcm2835-camera: Convert to platform remove
callback returning void
staging: vc04_services: vchiq_arm: Convert to platform remove callback
returning void
drivers/staging/axis-fifo/axis-fifo.c | 6 ++----
drivers/staging/emxx_udc/emxx_udc.c | 6 ++----
drivers/staging/fieldbus/anybuss/arcx-anybus.c | 5 ++---
drivers/staging/greybus/arche-apb-ctrl.c | 6 ++----
drivers/staging/greybus/arche-platform.c | 6 ++----
drivers/staging/media/deprecated/atmel/atmel-sama5d2-isc.c | 6 ++----
drivers/staging/media/deprecated/atmel/atmel-sama7g5-isc.c | 6 ++----
drivers/staging/media/imx/imx-media-csi.c | 6 ++----
drivers/staging/media/imx/imx-media-dev.c | 6 ++----
drivers/staging/media/imx/imx6-mipi-csi2.c | 6 ++----
drivers/staging/media/imx/imx8mq-mipi-csi2.c | 6 ++----
drivers/staging/media/meson/vdec/vdec.c | 6 ++----
drivers/staging/media/omap4iss/iss.c | 6 ++----
drivers/staging/media/rkvdec/rkvdec.c | 5 ++---
drivers/staging/media/sunxi/cedrus/cedrus.c | 6 ++----
drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c | 6 ++----
drivers/staging/most/dim2/dim2.c | 6 ++----
drivers/staging/nvec/nvec.c | 6 ++----
drivers/staging/nvec/nvec_kbd.c | 6 ++----
drivers/staging/nvec/nvec_power.c | 6 ++----
drivers/staging/nvec/nvec_ps2.c | 6 ++----
drivers/staging/octeon/ethernet.c | 5 ++---
.../staging/vc04_services/bcm2835-camera/bcm2835-camera.c | 6 ++----
.../staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 6 ++----
24 files changed, 48 insertions(+), 93 deletions(-)
base-commit: fe15c26ee26efa11741a7b632e9f23b01aca4cc6
--
2.39.2
^ permalink raw reply [flat|nested] 25+ messages in thread
* [PATCH 06/24] staging: media: atmel-sama5d2-isc: Convert to platform remove callback returning void
2023-04-03 15:39 [PATCH 00/24] staging: Convert to platform remove callback returning void Uwe Kleine-König
@ 2023-04-03 15:39 ` Uwe Kleine-König
2023-04-03 16:24 ` Nicolas Ferre
2023-04-03 15:39 ` [PATCH 07/24] staging: media: atmel-sama7g5-isc: " Uwe Kleine-König
` (10 subsequent siblings)
11 siblings, 1 reply; 25+ messages in thread
From: Uwe Kleine-König @ 2023-04-03 15:39 UTC (permalink / raw)
To: Eugen Hristev, Mauro Carvalho Chehab, Greg Kroah-Hartman,
Nicolas Ferre, Alexandre Belloni, Claudiu Beznea
Cc: linux-media, linux-staging, 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>
---
drivers/staging/media/deprecated/atmel/atmel-sama5d2-isc.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/media/deprecated/atmel/atmel-sama5d2-isc.c b/drivers/staging/media/deprecated/atmel/atmel-sama5d2-isc.c
index ba0614f981a2..cc744cea1d0e 100644
--- a/drivers/staging/media/deprecated/atmel/atmel-sama5d2-isc.c
+++ b/drivers/staging/media/deprecated/atmel/atmel-sama5d2-isc.c
@@ -580,7 +580,7 @@ static int atmel_isc_probe(struct platform_device *pdev)
return ret;
}
-static int atmel_isc_remove(struct platform_device *pdev)
+static void atmel_isc_remove(struct platform_device *pdev)
{
struct isc_device *isc = platform_get_drvdata(pdev);
@@ -594,8 +594,6 @@ static int atmel_isc_remove(struct platform_device *pdev)
clk_disable_unprepare(isc->hclock);
atmel_isc_clk_cleanup(isc);
-
- return 0;
}
static int __maybe_unused isc_runtime_suspend(struct device *dev)
@@ -638,7 +636,7 @@ MODULE_DEVICE_TABLE(of, atmel_isc_of_match);
static struct platform_driver atmel_isc_driver = {
.probe = atmel_isc_probe,
- .remove = atmel_isc_remove,
+ .remove_new = atmel_isc_remove,
.driver = {
.name = "atmel-sama5d2-isc",
.pm = &atmel_isc_dev_pm_ops,
--
2.39.2
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 07/24] staging: media: atmel-sama7g5-isc: Convert to platform remove callback returning void
2023-04-03 15:39 [PATCH 00/24] staging: Convert to platform remove callback returning void Uwe Kleine-König
2023-04-03 15:39 ` [PATCH 06/24] staging: media: atmel-sama5d2-isc: " Uwe Kleine-König
@ 2023-04-03 15:39 ` Uwe Kleine-König
2023-04-03 16:23 ` Nicolas Ferre
2023-04-03 15:39 ` [PATCH 08/24] staging: media: imx-media-csi: " Uwe Kleine-König
` (9 subsequent siblings)
11 siblings, 1 reply; 25+ messages in thread
From: Uwe Kleine-König @ 2023-04-03 15:39 UTC (permalink / raw)
To: Eugen Hristev, Mauro Carvalho Chehab, Greg Kroah-Hartman,
Nicolas Ferre, Alexandre Belloni, Claudiu Beznea
Cc: linux-media, linux-staging, 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>
---
drivers/staging/media/deprecated/atmel/atmel-sama7g5-isc.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/media/deprecated/atmel/atmel-sama7g5-isc.c b/drivers/staging/media/deprecated/atmel/atmel-sama7g5-isc.c
index 01ababdfcbd9..315bfc4ac4ff 100644
--- a/drivers/staging/media/deprecated/atmel/atmel-sama7g5-isc.c
+++ b/drivers/staging/media/deprecated/atmel/atmel-sama7g5-isc.c
@@ -549,7 +549,7 @@ static int microchip_xisc_probe(struct platform_device *pdev)
return ret;
}
-static int microchip_xisc_remove(struct platform_device *pdev)
+static void microchip_xisc_remove(struct platform_device *pdev)
{
struct isc_device *isc = platform_get_drvdata(pdev);
@@ -562,8 +562,6 @@ static int microchip_xisc_remove(struct platform_device *pdev)
clk_disable_unprepare(isc->hclock);
atmel_isc_clk_cleanup(isc);
-
- return 0;
}
static int __maybe_unused xisc_runtime_suspend(struct device *dev)
@@ -601,7 +599,7 @@ MODULE_DEVICE_TABLE(of, microchip_xisc_of_match);
static struct platform_driver microchip_xisc_driver = {
.probe = microchip_xisc_probe,
- .remove = microchip_xisc_remove,
+ .remove_new = microchip_xisc_remove,
.driver = {
.name = "microchip-sama7g5-xisc",
.pm = µchip_xisc_dev_pm_ops,
--
2.39.2
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 08/24] staging: media: imx-media-csi: Convert to platform remove callback returning void
2023-04-03 15:39 [PATCH 00/24] staging: Convert to platform remove callback returning void Uwe Kleine-König
2023-04-03 15:39 ` [PATCH 06/24] staging: media: atmel-sama5d2-isc: " Uwe Kleine-König
2023-04-03 15:39 ` [PATCH 07/24] staging: media: atmel-sama7g5-isc: " Uwe Kleine-König
@ 2023-04-03 15:39 ` Uwe Kleine-König
2023-04-04 8:38 ` Philipp Zabel
2023-04-03 15:39 ` [PATCH 09/24] staging: media: imx-media-dev: " Uwe Kleine-König
` (8 subsequent siblings)
11 siblings, 1 reply; 25+ messages in thread
From: Uwe Kleine-König @ 2023-04-03 15:39 UTC (permalink / raw)
To: Steve Longerbeam, Philipp Zabel, Mauro Carvalho Chehab,
Greg Kroah-Hartman, Shawn Guo, Sascha Hauer
Cc: Fabio Estevam, NXP Linux Team, linux-media, linux-staging,
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>
---
drivers/staging/media/imx/imx-media-csi.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/media/imx/imx-media-csi.c b/drivers/staging/media/imx/imx-media-csi.c
index 44d87fe30d52..097171bb930d 100644
--- a/drivers/staging/media/imx/imx-media-csi.c
+++ b/drivers/staging/media/imx/imx-media-csi.c
@@ -2041,7 +2041,7 @@ static int imx_csi_probe(struct platform_device *pdev)
return ret;
}
-static int imx_csi_remove(struct platform_device *pdev)
+static void imx_csi_remove(struct platform_device *pdev)
{
struct v4l2_subdev *sd = platform_get_drvdata(pdev);
struct csi_priv *priv = sd_to_dev(sd);
@@ -2052,8 +2052,6 @@ static int imx_csi_remove(struct platform_device *pdev)
v4l2_async_nf_cleanup(&priv->notifier);
v4l2_async_unregister_subdev(sd);
media_entity_cleanup(&sd->entity);
-
- return 0;
}
static const struct platform_device_id imx_csi_ids[] = {
@@ -2064,7 +2062,7 @@ MODULE_DEVICE_TABLE(platform, imx_csi_ids);
static struct platform_driver imx_csi_driver = {
.probe = imx_csi_probe,
- .remove = imx_csi_remove,
+ .remove_new = imx_csi_remove,
.id_table = imx_csi_ids,
.driver = {
.name = "imx-ipuv3-csi",
--
2.39.2
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 09/24] staging: media: imx-media-dev: Convert to platform remove callback returning void
2023-04-03 15:39 [PATCH 00/24] staging: Convert to platform remove callback returning void Uwe Kleine-König
` (2 preceding siblings ...)
2023-04-03 15:39 ` [PATCH 08/24] staging: media: imx-media-csi: " Uwe Kleine-König
@ 2023-04-03 15:39 ` Uwe Kleine-König
2023-04-04 8:38 ` Philipp Zabel
2023-04-03 15:40 ` [PATCH 10/24] staging: media: imx6-mipi-csi2: " Uwe Kleine-König
` (7 subsequent siblings)
11 siblings, 1 reply; 25+ messages in thread
From: Uwe Kleine-König @ 2023-04-03 15:39 UTC (permalink / raw)
To: Steve Longerbeam, Philipp Zabel, Mauro Carvalho Chehab,
Greg Kroah-Hartman, Shawn Guo, Sascha Hauer
Cc: Fabio Estevam, NXP Linux Team, linux-media, linux-staging,
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>
---
drivers/staging/media/imx/imx-media-dev.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/media/imx/imx-media-dev.c b/drivers/staging/media/imx/imx-media-dev.c
index f85462214e22..c80113905069 100644
--- a/drivers/staging/media/imx/imx-media-dev.c
+++ b/drivers/staging/media/imx/imx-media-dev.c
@@ -101,7 +101,7 @@ static int imx_media_probe(struct platform_device *pdev)
return ret;
}
-static int imx_media_remove(struct platform_device *pdev)
+static void imx_media_remove(struct platform_device *pdev)
{
struct imx_media_dev *imxmd =
(struct imx_media_dev *)platform_get_drvdata(pdev);
@@ -119,8 +119,6 @@ static int imx_media_remove(struct platform_device *pdev)
media_device_unregister(&imxmd->md);
v4l2_device_unregister(&imxmd->v4l2_dev);
media_device_cleanup(&imxmd->md);
-
- return 0;
}
static const struct of_device_id imx_media_dt_ids[] = {
@@ -131,7 +129,7 @@ MODULE_DEVICE_TABLE(of, imx_media_dt_ids);
static struct platform_driver imx_media_pdrv = {
.probe = imx_media_probe,
- .remove = imx_media_remove,
+ .remove_new = imx_media_remove,
.driver = {
.name = "imx-media",
.of_match_table = imx_media_dt_ids,
--
2.39.2
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 10/24] staging: media: imx6-mipi-csi2: Convert to platform remove callback returning void
2023-04-03 15:39 [PATCH 00/24] staging: Convert to platform remove callback returning void Uwe Kleine-König
` (3 preceding siblings ...)
2023-04-03 15:39 ` [PATCH 09/24] staging: media: imx-media-dev: " Uwe Kleine-König
@ 2023-04-03 15:40 ` Uwe Kleine-König
2023-04-04 8:38 ` Philipp Zabel
2023-04-03 15:40 ` [PATCH 11/24] staging: media: imx8mq-mipi-csi2: " Uwe Kleine-König
` (6 subsequent siblings)
11 siblings, 1 reply; 25+ messages in thread
From: Uwe Kleine-König @ 2023-04-03 15:40 UTC (permalink / raw)
To: Steve Longerbeam, Philipp Zabel, Mauro Carvalho Chehab,
Greg Kroah-Hartman, Shawn Guo, Sascha Hauer
Cc: Fabio Estevam, NXP Linux Team, linux-media, linux-staging,
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>
---
drivers/staging/media/imx/imx6-mipi-csi2.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/media/imx/imx6-mipi-csi2.c b/drivers/staging/media/imx/imx6-mipi-csi2.c
index c4cb558a85c6..c07994ea6e96 100644
--- a/drivers/staging/media/imx/imx6-mipi-csi2.c
+++ b/drivers/staging/media/imx/imx6-mipi-csi2.c
@@ -765,7 +765,7 @@ static int csi2_probe(struct platform_device *pdev)
return ret;
}
-static int csi2_remove(struct platform_device *pdev)
+static void csi2_remove(struct platform_device *pdev)
{
struct v4l2_subdev *sd = platform_get_drvdata(pdev);
struct csi2_dev *csi2 = sd_to_dev(sd);
@@ -777,8 +777,6 @@ static int csi2_remove(struct platform_device *pdev)
clk_disable_unprepare(csi2->pllref_clk);
mutex_destroy(&csi2->lock);
media_entity_cleanup(&sd->entity);
-
- return 0;
}
static const struct of_device_id csi2_dt_ids[] = {
@@ -793,7 +791,7 @@ static struct platform_driver csi2_driver = {
.of_match_table = csi2_dt_ids,
},
.probe = csi2_probe,
- .remove = csi2_remove,
+ .remove_new = csi2_remove,
};
module_platform_driver(csi2_driver);
--
2.39.2
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 11/24] staging: media: imx8mq-mipi-csi2: Convert to platform remove callback returning void
2023-04-03 15:39 [PATCH 00/24] staging: Convert to platform remove callback returning void Uwe Kleine-König
` (4 preceding siblings ...)
2023-04-03 15:40 ` [PATCH 10/24] staging: media: imx6-mipi-csi2: " Uwe Kleine-König
@ 2023-04-03 15:40 ` Uwe Kleine-König
2023-04-04 8:38 ` Philipp Zabel
2023-04-03 15:40 ` [PATCH 12/24] staging: media: meson: vdec: " Uwe Kleine-König
` (5 subsequent siblings)
11 siblings, 1 reply; 25+ messages in thread
From: Uwe Kleine-König @ 2023-04-03 15:40 UTC (permalink / raw)
To: Steve Longerbeam, Philipp Zabel, Mauro Carvalho Chehab,
Greg Kroah-Hartman, Shawn Guo, Sascha Hauer
Cc: Fabio Estevam, NXP Linux Team, linux-media, linux-staging,
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>
---
drivers/staging/media/imx/imx8mq-mipi-csi2.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/media/imx/imx8mq-mipi-csi2.c b/drivers/staging/media/imx/imx8mq-mipi-csi2.c
index 83194328d010..4317f6b71892 100644
--- a/drivers/staging/media/imx/imx8mq-mipi-csi2.c
+++ b/drivers/staging/media/imx/imx8mq-mipi-csi2.c
@@ -961,7 +961,7 @@ static int imx8mq_mipi_csi_probe(struct platform_device *pdev)
return ret;
}
-static int imx8mq_mipi_csi_remove(struct platform_device *pdev)
+static void imx8mq_mipi_csi_remove(struct platform_device *pdev)
{
struct v4l2_subdev *sd = platform_get_drvdata(pdev);
struct csi_state *state = mipi_sd_to_csi2_state(sd);
@@ -976,8 +976,6 @@ static int imx8mq_mipi_csi_remove(struct platform_device *pdev)
mutex_destroy(&state->lock);
pm_runtime_set_suspended(&pdev->dev);
imx8mq_mipi_csi_release_icc(pdev);
-
- return 0;
}
static const struct of_device_id imx8mq_mipi_csi_of_match[] = {
@@ -988,7 +986,7 @@ MODULE_DEVICE_TABLE(of, imx8mq_mipi_csi_of_match);
static struct platform_driver imx8mq_mipi_csi_driver = {
.probe = imx8mq_mipi_csi_probe,
- .remove = imx8mq_mipi_csi_remove,
+ .remove_new = imx8mq_mipi_csi_remove,
.driver = {
.of_match_table = imx8mq_mipi_csi_of_match,
.name = MIPI_CSI2_DRIVER_NAME,
--
2.39.2
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 12/24] staging: media: meson: vdec: Convert to platform remove callback returning void
2023-04-03 15:39 [PATCH 00/24] staging: Convert to platform remove callback returning void Uwe Kleine-König
` (5 preceding siblings ...)
2023-04-03 15:40 ` [PATCH 11/24] staging: media: imx8mq-mipi-csi2: " Uwe Kleine-König
@ 2023-04-03 15:40 ` Uwe Kleine-König
2023-04-03 20:38 ` Martin Blumenstingl
2023-04-03 15:40 ` [PATCH 13/24] staging: media: omap4iss: " Uwe Kleine-König
` (4 subsequent siblings)
11 siblings, 1 reply; 25+ messages in thread
From: Uwe Kleine-König @ 2023-04-03 15:40 UTC (permalink / raw)
To: Neil Armstrong, Mauro Carvalho Chehab, Greg Kroah-Hartman,
Kevin Hilman
Cc: Jerome Brunet, Martin Blumenstingl, linux-media, linux-amlogic,
linux-staging, 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>
---
drivers/staging/media/meson/vdec/vdec.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/media/meson/vdec/vdec.c b/drivers/staging/media/meson/vdec/vdec.c
index 52f224d8def1..5ca4b1200831 100644
--- a/drivers/staging/media/meson/vdec/vdec.c
+++ b/drivers/staging/media/meson/vdec/vdec.c
@@ -1106,19 +1106,17 @@ static int vdec_probe(struct platform_device *pdev)
return ret;
}
-static int vdec_remove(struct platform_device *pdev)
+static void vdec_remove(struct platform_device *pdev)
{
struct amvdec_core *core = platform_get_drvdata(pdev);
video_unregister_device(core->vdev_dec);
v4l2_device_unregister(&core->v4l2_dev);
-
- return 0;
}
static struct platform_driver meson_vdec_driver = {
.probe = vdec_probe,
- .remove = vdec_remove,
+ .remove_new = vdec_remove,
.driver = {
.name = "meson-vdec",
.of_match_table = vdec_dt_match,
--
2.39.2
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 13/24] staging: media: omap4iss: Convert to platform remove callback returning void
2023-04-03 15:39 [PATCH 00/24] staging: Convert to platform remove callback returning void Uwe Kleine-König
` (6 preceding siblings ...)
2023-04-03 15:40 ` [PATCH 12/24] staging: media: meson: vdec: " Uwe Kleine-König
@ 2023-04-03 15:40 ` Uwe Kleine-König
2023-04-04 2:25 ` Laurent Pinchart
2023-04-03 15:40 ` [PATCH 14/24] staging: media: rkvdec: " Uwe Kleine-König
` (3 subsequent siblings)
11 siblings, 1 reply; 25+ messages in thread
From: Uwe Kleine-König @ 2023-04-03 15:40 UTC (permalink / raw)
To: Laurent Pinchart, Mauro Carvalho Chehab, Greg Kroah-Hartman
Cc: linux-media, linux-staging, 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/staging/media/omap4iss/iss.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/media/omap4iss/iss.c b/drivers/staging/media/omap4iss/iss.c
index fa2a36d829d3..0c4283bb48ad 100644
--- a/drivers/staging/media/omap4iss/iss.c
+++ b/drivers/staging/media/omap4iss/iss.c
@@ -1323,15 +1323,13 @@ static int iss_probe(struct platform_device *pdev)
return ret;
}
-static int iss_remove(struct platform_device *pdev)
+static void iss_remove(struct platform_device *pdev)
{
struct iss_device *iss = platform_get_drvdata(pdev);
iss_unregister_entities(iss);
media_entity_enum_cleanup(&iss->crashed);
iss_cleanup_modules(iss);
-
- return 0;
}
static const struct platform_device_id omap4iss_id_table[] = {
@@ -1342,7 +1340,7 @@ MODULE_DEVICE_TABLE(platform, omap4iss_id_table);
static struct platform_driver iss_driver = {
.probe = iss_probe,
- .remove = iss_remove,
+ .remove_new = iss_remove,
.id_table = omap4iss_id_table,
.driver = {
.name = "omap4iss",
--
2.39.2
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 14/24] staging: media: rkvdec: Convert to platform remove callback returning void
2023-04-03 15:39 [PATCH 00/24] staging: Convert to platform remove callback returning void Uwe Kleine-König
` (7 preceding siblings ...)
2023-04-03 15:40 ` [PATCH 13/24] staging: media: omap4iss: " Uwe Kleine-König
@ 2023-04-03 15:40 ` Uwe Kleine-König
2023-04-03 15:40 ` [PATCH 15/24] staging: media: sunxi: cedrus: " Uwe Kleine-König
` (2 subsequent siblings)
11 siblings, 0 replies; 25+ messages in thread
From: Uwe Kleine-König @ 2023-04-03 15:40 UTC (permalink / raw)
To: Ezequiel Garcia, Mauro Carvalho Chehab, Greg Kroah-Hartman
Cc: linux-media, linux-rockchip, linux-staging, 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/staging/media/rkvdec/rkvdec.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c
index 7bab7586918c..3df977653ba5 100644
--- a/drivers/staging/media/rkvdec/rkvdec.c
+++ b/drivers/staging/media/rkvdec/rkvdec.c
@@ -1062,14 +1062,13 @@ static int rkvdec_probe(struct platform_device *pdev)
return ret;
}
-static int rkvdec_remove(struct platform_device *pdev)
+static void rkvdec_remove(struct platform_device *pdev)
{
struct rkvdec_dev *rkvdec = platform_get_drvdata(pdev);
rkvdec_v4l2_cleanup(rkvdec);
pm_runtime_disable(&pdev->dev);
pm_runtime_dont_use_autosuspend(&pdev->dev);
- return 0;
}
#ifdef CONFIG_PM
@@ -1099,7 +1098,7 @@ static const struct dev_pm_ops rkvdec_pm_ops = {
static struct platform_driver rkvdec_driver = {
.probe = rkvdec_probe,
- .remove = rkvdec_remove,
+ .remove_new = rkvdec_remove,
.driver = {
.name = "rkvdec",
.of_match_table = of_rkvdec_match,
--
2.39.2
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 15/24] staging: media: sunxi: cedrus: Convert to platform remove callback returning void
2023-04-03 15:39 [PATCH 00/24] staging: Convert to platform remove callback returning void Uwe Kleine-König
` (8 preceding siblings ...)
2023-04-03 15:40 ` [PATCH 14/24] staging: media: rkvdec: " Uwe Kleine-König
@ 2023-04-03 15:40 ` Uwe Kleine-König
2023-04-04 8:47 ` Paul Kocialkowski
2023-04-04 16:53 ` Jernej Škrabec
2023-04-03 15:40 ` [PATCH 16/24] staging: media: sun6i-isp: " Uwe Kleine-König
2023-04-03 19:50 ` [PATCH 00/24] staging: " Greg Kroah-Hartman
11 siblings, 2 replies; 25+ messages in thread
From: Uwe Kleine-König @ 2023-04-03 15:40 UTC (permalink / raw)
To: Maxime Ripard, Paul Kocialkowski, Mauro Carvalho Chehab,
Greg Kroah-Hartman, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland
Cc: linux-media, linux-staging, 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/staging/media/sunxi/cedrus/cedrus.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.c b/drivers/staging/media/sunxi/cedrus/cedrus.c
index a43d5ff66716..3c62376c3e94 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus.c
@@ -543,7 +543,7 @@ static int cedrus_probe(struct platform_device *pdev)
return ret;
}
-static int cedrus_remove(struct platform_device *pdev)
+static void cedrus_remove(struct platform_device *pdev)
{
struct cedrus_dev *dev = platform_get_drvdata(pdev);
@@ -558,8 +558,6 @@ static int cedrus_remove(struct platform_device *pdev)
v4l2_device_unregister(&dev->v4l2_dev);
cedrus_hw_remove(dev);
-
- return 0;
}
static const struct cedrus_variant sun4i_a10_cedrus_variant = {
@@ -706,7 +704,7 @@ static const struct dev_pm_ops cedrus_dev_pm_ops = {
static struct platform_driver cedrus_driver = {
.probe = cedrus_probe,
- .remove = cedrus_remove,
+ .remove_new = cedrus_remove,
.driver = {
.name = CEDRUS_NAME,
.of_match_table = of_match_ptr(cedrus_dt_match),
--
2.39.2
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 16/24] staging: media: sun6i-isp: Convert to platform remove callback returning void
2023-04-03 15:39 [PATCH 00/24] staging: Convert to platform remove callback returning void Uwe Kleine-König
` (9 preceding siblings ...)
2023-04-03 15:40 ` [PATCH 15/24] staging: media: sunxi: cedrus: " Uwe Kleine-König
@ 2023-04-03 15:40 ` Uwe Kleine-König
2023-04-04 8:47 ` Paul Kocialkowski
2023-04-04 16:54 ` Jernej Škrabec
2023-04-03 19:50 ` [PATCH 00/24] staging: " Greg Kroah-Hartman
11 siblings, 2 replies; 25+ messages in thread
From: Uwe Kleine-König @ 2023-04-03 15:40 UTC (permalink / raw)
To: Paul Kocialkowski, Mauro Carvalho Chehab, Greg Kroah-Hartman,
Chen-Yu Tsai, Jernej Skrabec, Samuel Holland
Cc: linux-media, linux-staging, 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/staging/media/sunxi/sun6i-isp/sun6i_isp.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c b/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c
index 7b7947509b69..0dc75adbd9d8 100644
--- a/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c
+++ b/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c
@@ -493,7 +493,7 @@ static int sun6i_isp_probe(struct platform_device *platform_dev)
return ret;
}
-static int sun6i_isp_remove(struct platform_device *platform_dev)
+static void sun6i_isp_remove(struct platform_device *platform_dev)
{
struct sun6i_isp_device *isp_dev = platform_get_drvdata(platform_dev);
@@ -503,8 +503,6 @@ static int sun6i_isp_remove(struct platform_device *platform_dev)
sun6i_isp_v4l2_cleanup(isp_dev);
sun6i_isp_tables_cleanup(isp_dev);
sun6i_isp_resources_cleanup(isp_dev);
-
- return 0;
}
/*
@@ -540,7 +538,7 @@ MODULE_DEVICE_TABLE(of, sun6i_isp_of_match);
static struct platform_driver sun6i_isp_platform_driver = {
.probe = sun6i_isp_probe,
- .remove = sun6i_isp_remove,
+ .remove_new = sun6i_isp_remove,
.driver = {
.name = SUN6I_ISP_NAME,
.of_match_table = of_match_ptr(sun6i_isp_of_match),
--
2.39.2
^ permalink raw reply related [flat|nested] 25+ messages in thread
* Re: [PATCH 07/24] staging: media: atmel-sama7g5-isc: Convert to platform remove callback returning void
2023-04-03 15:39 ` [PATCH 07/24] staging: media: atmel-sama7g5-isc: " Uwe Kleine-König
@ 2023-04-03 16:23 ` Nicolas Ferre
0 siblings, 0 replies; 25+ messages in thread
From: Nicolas Ferre @ 2023-04-03 16:23 UTC (permalink / raw)
To: Uwe Kleine-König, Eugen Hristev, Mauro Carvalho Chehab,
Greg Kroah-Hartman, Alexandre Belloni, Claudiu Beznea
Cc: linux-media, linux-staging, linux-arm-kernel, kernel
On 03/04/2023 at 17:39, Uwe Kleine-König wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
> 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: Nicolas Ferre <nicolas.ferre@microchip.com>
> ---
> drivers/staging/media/deprecated/atmel/atmel-sama7g5-isc.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/staging/media/deprecated/atmel/atmel-sama7g5-isc.c b/drivers/staging/media/deprecated/atmel/atmel-sama7g5-isc.c
> index 01ababdfcbd9..315bfc4ac4ff 100644
> --- a/drivers/staging/media/deprecated/atmel/atmel-sama7g5-isc.c
> +++ b/drivers/staging/media/deprecated/atmel/atmel-sama7g5-isc.c
> @@ -549,7 +549,7 @@ static int microchip_xisc_probe(struct platform_device *pdev)
> return ret;
> }
>
> -static int microchip_xisc_remove(struct platform_device *pdev)
> +static void microchip_xisc_remove(struct platform_device *pdev)
> {
> struct isc_device *isc = platform_get_drvdata(pdev);
>
> @@ -562,8 +562,6 @@ static int microchip_xisc_remove(struct platform_device *pdev)
> clk_disable_unprepare(isc->hclock);
>
> atmel_isc_clk_cleanup(isc);
> -
> - return 0;
> }
>
> static int __maybe_unused xisc_runtime_suspend(struct device *dev)
> @@ -601,7 +599,7 @@ MODULE_DEVICE_TABLE(of, microchip_xisc_of_match);
>
> static struct platform_driver microchip_xisc_driver = {
> .probe = microchip_xisc_probe,
> - .remove = microchip_xisc_remove,
> + .remove_new = microchip_xisc_remove,
> .driver = {
> .name = "microchip-sama7g5-xisc",
> .pm = µchip_xisc_dev_pm_ops,
> --
> 2.39.2
>
--
Nicolas Ferre
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 06/24] staging: media: atmel-sama5d2-isc: Convert to platform remove callback returning void
2023-04-03 15:39 ` [PATCH 06/24] staging: media: atmel-sama5d2-isc: " Uwe Kleine-König
@ 2023-04-03 16:24 ` Nicolas Ferre
0 siblings, 0 replies; 25+ messages in thread
From: Nicolas Ferre @ 2023-04-03 16:24 UTC (permalink / raw)
To: Uwe Kleine-König, Eugen Hristev, Mauro Carvalho Chehab,
Greg Kroah-Hartman, Alexandre Belloni, Claudiu Beznea
Cc: linux-media, linux-staging, linux-arm-kernel, kernel
On 03/04/2023 at 17:39, Uwe Kleine-König wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
> 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: Nicolas Ferre <nicolas.ferre@microchip.com>
Thanks. Best regards,
Nicolas
> ---
> drivers/staging/media/deprecated/atmel/atmel-sama5d2-isc.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/staging/media/deprecated/atmel/atmel-sama5d2-isc.c b/drivers/staging/media/deprecated/atmel/atmel-sama5d2-isc.c
> index ba0614f981a2..cc744cea1d0e 100644
> --- a/drivers/staging/media/deprecated/atmel/atmel-sama5d2-isc.c
> +++ b/drivers/staging/media/deprecated/atmel/atmel-sama5d2-isc.c
> @@ -580,7 +580,7 @@ static int atmel_isc_probe(struct platform_device *pdev)
> return ret;
> }
>
> -static int atmel_isc_remove(struct platform_device *pdev)
> +static void atmel_isc_remove(struct platform_device *pdev)
> {
> struct isc_device *isc = platform_get_drvdata(pdev);
>
> @@ -594,8 +594,6 @@ static int atmel_isc_remove(struct platform_device *pdev)
> clk_disable_unprepare(isc->hclock);
>
> atmel_isc_clk_cleanup(isc);
> -
> - return 0;
> }
>
> static int __maybe_unused isc_runtime_suspend(struct device *dev)
> @@ -638,7 +636,7 @@ MODULE_DEVICE_TABLE(of, atmel_isc_of_match);
>
> static struct platform_driver atmel_isc_driver = {
> .probe = atmel_isc_probe,
> - .remove = atmel_isc_remove,
> + .remove_new = atmel_isc_remove,
> .driver = {
> .name = "atmel-sama5d2-isc",
> .pm = &atmel_isc_dev_pm_ops,
> --
> 2.39.2
>
--
Nicolas Ferre
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 00/24] staging: Convert to platform remove callback returning void
2023-04-03 15:39 [PATCH 00/24] staging: Convert to platform remove callback returning void Uwe Kleine-König
` (10 preceding siblings ...)
2023-04-03 15:40 ` [PATCH 16/24] staging: media: sun6i-isp: " Uwe Kleine-König
@ 2023-04-03 19:50 ` Greg Kroah-Hartman
11 siblings, 0 replies; 25+ messages in thread
From: Greg Kroah-Hartman @ 2023-04-03 19:50 UTC (permalink / raw)
To: Uwe Kleine-König
Cc: Deepak R Varma, Yuan Can, Simon Horman, Sven Van Asbroeck,
Vaibhav Hiremath, Johan Hovold, Alex Elder, Eugen Hristev,
Mauro Carvalho Chehab, Nicolas Ferre, Alexandre Belloni,
Claudiu Beznea, Steve Longerbeam, Philipp Zabel, Shawn Guo,
Sascha Hauer, Neil Armstrong, Kevin Hilman, Laurent Pinchart,
Ezequiel Garcia, Maxime Ripard, Paul Kocialkowski, Chen-Yu Tsai,
Jernej Skrabec, Samuel Holland, Parthiban Veerasooran,
Christian Gromm, Davidlohr Bueso, Marc Dietrich, Florian Fainelli,
Ray Jui, Scott Branden, Umang Jain, Andy Shevchenko,
Adrien Thierry, Stefan Wahren, Fabio M. De Francesco, Phil Elwell,
Jakob Koschel, linux-staging, kernel, greybus-dev, linux-media,
linux-arm-kernel, Fabio Estevam, NXP Linux Team, Jerome Brunet,
Martin Blumenstingl, linux-amlogic, linux-rockchip, linux-sunxi,
ac100, linux-tegra, Broadcom internal kernel review list,
linux-rpi-kernel
On Mon, Apr 03, 2023 at 05:39:50PM +0200, Uwe Kleine-König wrote:
> Hello,
>
> this series adapts the platform drivers below drivers/staging 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 staging already return zero in their remove callback, so
> they can be trivially converted.
>
> The changes to the individual drivers are all orthogonal. If I need to
> resend some patches because of some review feedback, I'd like to only
> send the patches that actually needed changes, so please pick up the
> remaining patches that don't need changing to reduce the amount of mail.
Note, I can't take drivers/staging/media/ patches, those go through the
v4l maintainer's tree. So I've taken the non-media patches from this
series now.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 12/24] staging: media: meson: vdec: Convert to platform remove callback returning void
2023-04-03 15:40 ` [PATCH 12/24] staging: media: meson: vdec: " Uwe Kleine-König
@ 2023-04-03 20:38 ` Martin Blumenstingl
0 siblings, 0 replies; 25+ messages in thread
From: Martin Blumenstingl @ 2023-04-03 20:38 UTC (permalink / raw)
To: Uwe Kleine-König
Cc: Neil Armstrong, Mauro Carvalho Chehab, Greg Kroah-Hartman,
Kevin Hilman, Jerome Brunet, linux-media, linux-amlogic,
linux-staging, linux-arm-kernel, kernel
On Mon, Apr 3, 2023 at 5:40 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>
Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 13/24] staging: media: omap4iss: Convert to platform remove callback returning void
2023-04-03 15:40 ` [PATCH 13/24] staging: media: omap4iss: " Uwe Kleine-König
@ 2023-04-04 2:25 ` Laurent Pinchart
0 siblings, 0 replies; 25+ messages in thread
From: Laurent Pinchart @ 2023-04-04 2:25 UTC (permalink / raw)
To: Uwe Kleine-König
Cc: Mauro Carvalho Chehab, Greg Kroah-Hartman, linux-media,
linux-staging, kernel
Hi Uwe,
Thank you for the patch.
On Mon, Apr 03, 2023 at 05:40:03PM +0200, 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>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
> drivers/staging/media/omap4iss/iss.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/staging/media/omap4iss/iss.c b/drivers/staging/media/omap4iss/iss.c
> index fa2a36d829d3..0c4283bb48ad 100644
> --- a/drivers/staging/media/omap4iss/iss.c
> +++ b/drivers/staging/media/omap4iss/iss.c
> @@ -1323,15 +1323,13 @@ static int iss_probe(struct platform_device *pdev)
> return ret;
> }
>
> -static int iss_remove(struct platform_device *pdev)
> +static void iss_remove(struct platform_device *pdev)
> {
> struct iss_device *iss = platform_get_drvdata(pdev);
>
> iss_unregister_entities(iss);
> media_entity_enum_cleanup(&iss->crashed);
> iss_cleanup_modules(iss);
> -
> - return 0;
> }
>
> static const struct platform_device_id omap4iss_id_table[] = {
> @@ -1342,7 +1340,7 @@ MODULE_DEVICE_TABLE(platform, omap4iss_id_table);
>
> static struct platform_driver iss_driver = {
> .probe = iss_probe,
> - .remove = iss_remove,
> + .remove_new = iss_remove,
> .id_table = omap4iss_id_table,
> .driver = {
> .name = "omap4iss",
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 08/24] staging: media: imx-media-csi: Convert to platform remove callback returning void
2023-04-03 15:39 ` [PATCH 08/24] staging: media: imx-media-csi: " Uwe Kleine-König
@ 2023-04-04 8:38 ` Philipp Zabel
0 siblings, 0 replies; 25+ messages in thread
From: Philipp Zabel @ 2023-04-04 8:38 UTC (permalink / raw)
To: Uwe Kleine-König, Steve Longerbeam, Mauro Carvalho Chehab,
Greg Kroah-Hartman, Shawn Guo, Sascha Hauer
Cc: Fabio Estevam, NXP Linux Team, linux-media, linux-staging,
linux-arm-kernel, kernel
On Mo, 2023-04-03 at 17:39 +0200, 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>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
regards
Philipp
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 09/24] staging: media: imx-media-dev: Convert to platform remove callback returning void
2023-04-03 15:39 ` [PATCH 09/24] staging: media: imx-media-dev: " Uwe Kleine-König
@ 2023-04-04 8:38 ` Philipp Zabel
0 siblings, 0 replies; 25+ messages in thread
From: Philipp Zabel @ 2023-04-04 8:38 UTC (permalink / raw)
To: Uwe Kleine-König, Steve Longerbeam, Mauro Carvalho Chehab,
Greg Kroah-Hartman, Shawn Guo, Sascha Hauer
Cc: Fabio Estevam, NXP Linux Team, linux-media, linux-staging,
linux-arm-kernel, kernel
On Mo, 2023-04-03 at 17:39 +0200, 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>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
regards
Philipp
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 10/24] staging: media: imx6-mipi-csi2: Convert to platform remove callback returning void
2023-04-03 15:40 ` [PATCH 10/24] staging: media: imx6-mipi-csi2: " Uwe Kleine-König
@ 2023-04-04 8:38 ` Philipp Zabel
0 siblings, 0 replies; 25+ messages in thread
From: Philipp Zabel @ 2023-04-04 8:38 UTC (permalink / raw)
To: Uwe Kleine-König, Steve Longerbeam, Mauro Carvalho Chehab,
Greg Kroah-Hartman, Shawn Guo, Sascha Hauer
Cc: Fabio Estevam, NXP Linux Team, linux-media, linux-staging,
linux-arm-kernel, kernel
On Mo, 2023-04-03 at 17:40 +0200, 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>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
regards
Philipp
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 11/24] staging: media: imx8mq-mipi-csi2: Convert to platform remove callback returning void
2023-04-03 15:40 ` [PATCH 11/24] staging: media: imx8mq-mipi-csi2: " Uwe Kleine-König
@ 2023-04-04 8:38 ` Philipp Zabel
0 siblings, 0 replies; 25+ messages in thread
From: Philipp Zabel @ 2023-04-04 8:38 UTC (permalink / raw)
To: Uwe Kleine-König, Steve Longerbeam, Mauro Carvalho Chehab,
Greg Kroah-Hartman, Shawn Guo, Sascha Hauer
Cc: Fabio Estevam, NXP Linux Team, linux-media, linux-staging,
linux-arm-kernel, kernel
On Mo, 2023-04-03 at 17:40 +0200, 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>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
regards
Philipp
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 15/24] staging: media: sunxi: cedrus: Convert to platform remove callback returning void
2023-04-03 15:40 ` [PATCH 15/24] staging: media: sunxi: cedrus: " Uwe Kleine-König
@ 2023-04-04 8:47 ` Paul Kocialkowski
2023-04-04 16:53 ` Jernej Škrabec
1 sibling, 0 replies; 25+ messages in thread
From: Paul Kocialkowski @ 2023-04-04 8:47 UTC (permalink / raw)
To: Uwe Kleine-König
Cc: Maxime Ripard, Mauro Carvalho Chehab, Greg Kroah-Hartman,
Chen-Yu Tsai, Jernej Skrabec, Samuel Holland, linux-media,
linux-staging, linux-arm-kernel, linux-sunxi, kernel
[-- Attachment #1: Type: text/plain, Size: 2169 bytes --]
Hi,
On Mon 03 Apr 23, 17:40, 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>
Reviewed-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Thanks,
Paul
> ---
> drivers/staging/media/sunxi/cedrus/cedrus.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.c b/drivers/staging/media/sunxi/cedrus/cedrus.c
> index a43d5ff66716..3c62376c3e94 100644
> --- a/drivers/staging/media/sunxi/cedrus/cedrus.c
> +++ b/drivers/staging/media/sunxi/cedrus/cedrus.c
> @@ -543,7 +543,7 @@ static int cedrus_probe(struct platform_device *pdev)
> return ret;
> }
>
> -static int cedrus_remove(struct platform_device *pdev)
> +static void cedrus_remove(struct platform_device *pdev)
> {
> struct cedrus_dev *dev = platform_get_drvdata(pdev);
>
> @@ -558,8 +558,6 @@ static int cedrus_remove(struct platform_device *pdev)
> v4l2_device_unregister(&dev->v4l2_dev);
>
> cedrus_hw_remove(dev);
> -
> - return 0;
> }
>
> static const struct cedrus_variant sun4i_a10_cedrus_variant = {
> @@ -706,7 +704,7 @@ static const struct dev_pm_ops cedrus_dev_pm_ops = {
>
> static struct platform_driver cedrus_driver = {
> .probe = cedrus_probe,
> - .remove = cedrus_remove,
> + .remove_new = cedrus_remove,
> .driver = {
> .name = CEDRUS_NAME,
> .of_match_table = of_match_ptr(cedrus_dt_match),
> --
> 2.39.2
>
--
Paul Kocialkowski, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 16/24] staging: media: sun6i-isp: Convert to platform remove callback returning void
2023-04-03 15:40 ` [PATCH 16/24] staging: media: sun6i-isp: " Uwe Kleine-König
@ 2023-04-04 8:47 ` Paul Kocialkowski
2023-04-04 16:54 ` Jernej Škrabec
1 sibling, 0 replies; 25+ messages in thread
From: Paul Kocialkowski @ 2023-04-04 8:47 UTC (permalink / raw)
To: Uwe Kleine-König
Cc: Mauro Carvalho Chehab, Greg Kroah-Hartman, Chen-Yu Tsai,
Jernej Skrabec, Samuel Holland, linux-media, linux-staging,
linux-arm-kernel, linux-sunxi, kernel
[-- Attachment #1: Type: text/plain, Size: 2259 bytes --]
Hi,
On Mon 03 Apr 23, 17:40, 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>
Reviewed-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Thanks,
Paul
> ---
> drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c b/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c
> index 7b7947509b69..0dc75adbd9d8 100644
> --- a/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c
> +++ b/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c
> @@ -493,7 +493,7 @@ static int sun6i_isp_probe(struct platform_device *platform_dev)
> return ret;
> }
>
> -static int sun6i_isp_remove(struct platform_device *platform_dev)
> +static void sun6i_isp_remove(struct platform_device *platform_dev)
> {
> struct sun6i_isp_device *isp_dev = platform_get_drvdata(platform_dev);
>
> @@ -503,8 +503,6 @@ static int sun6i_isp_remove(struct platform_device *platform_dev)
> sun6i_isp_v4l2_cleanup(isp_dev);
> sun6i_isp_tables_cleanup(isp_dev);
> sun6i_isp_resources_cleanup(isp_dev);
> -
> - return 0;
> }
>
> /*
> @@ -540,7 +538,7 @@ MODULE_DEVICE_TABLE(of, sun6i_isp_of_match);
>
> static struct platform_driver sun6i_isp_platform_driver = {
> .probe = sun6i_isp_probe,
> - .remove = sun6i_isp_remove,
> + .remove_new = sun6i_isp_remove,
> .driver = {
> .name = SUN6I_ISP_NAME,
> .of_match_table = of_match_ptr(sun6i_isp_of_match),
> --
> 2.39.2
>
--
Paul Kocialkowski, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 15/24] staging: media: sunxi: cedrus: Convert to platform remove callback returning void
2023-04-03 15:40 ` [PATCH 15/24] staging: media: sunxi: cedrus: " Uwe Kleine-König
2023-04-04 8:47 ` Paul Kocialkowski
@ 2023-04-04 16:53 ` Jernej Škrabec
1 sibling, 0 replies; 25+ messages in thread
From: Jernej Škrabec @ 2023-04-04 16:53 UTC (permalink / raw)
To: Maxime Ripard, Paul Kocialkowski, Mauro Carvalho Chehab,
Greg Kroah-Hartman, Chen-Yu Tsai, Samuel Holland,
Uwe Kleine-König
Cc: linux-media, linux-staging, linux-arm-kernel, linux-sunxi, kernel
Dne ponedeljek, 03. april 2023 ob 17:40:05 CEST 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
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 16/24] staging: media: sun6i-isp: Convert to platform remove callback returning void
2023-04-03 15:40 ` [PATCH 16/24] staging: media: sun6i-isp: " Uwe Kleine-König
2023-04-04 8:47 ` Paul Kocialkowski
@ 2023-04-04 16:54 ` Jernej Škrabec
1 sibling, 0 replies; 25+ messages in thread
From: Jernej Škrabec @ 2023-04-04 16:54 UTC (permalink / raw)
To: Paul Kocialkowski, Mauro Carvalho Chehab, Greg Kroah-Hartman,
Chen-Yu Tsai, Samuel Holland, Uwe Kleine-König
Cc: linux-media, linux-staging, linux-arm-kernel, linux-sunxi, kernel
Dne ponedeljek, 03. april 2023 ob 17:40:06 CEST 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
^ permalink raw reply [flat|nested] 25+ messages in thread
end of thread, other threads:[~2023-04-04 16:54 UTC | newest]
Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-03 15:39 [PATCH 00/24] staging: Convert to platform remove callback returning void Uwe Kleine-König
2023-04-03 15:39 ` [PATCH 06/24] staging: media: atmel-sama5d2-isc: " Uwe Kleine-König
2023-04-03 16:24 ` Nicolas Ferre
2023-04-03 15:39 ` [PATCH 07/24] staging: media: atmel-sama7g5-isc: " Uwe Kleine-König
2023-04-03 16:23 ` Nicolas Ferre
2023-04-03 15:39 ` [PATCH 08/24] staging: media: imx-media-csi: " Uwe Kleine-König
2023-04-04 8:38 ` Philipp Zabel
2023-04-03 15:39 ` [PATCH 09/24] staging: media: imx-media-dev: " Uwe Kleine-König
2023-04-04 8:38 ` Philipp Zabel
2023-04-03 15:40 ` [PATCH 10/24] staging: media: imx6-mipi-csi2: " Uwe Kleine-König
2023-04-04 8:38 ` Philipp Zabel
2023-04-03 15:40 ` [PATCH 11/24] staging: media: imx8mq-mipi-csi2: " Uwe Kleine-König
2023-04-04 8:38 ` Philipp Zabel
2023-04-03 15:40 ` [PATCH 12/24] staging: media: meson: vdec: " Uwe Kleine-König
2023-04-03 20:38 ` Martin Blumenstingl
2023-04-03 15:40 ` [PATCH 13/24] staging: media: omap4iss: " Uwe Kleine-König
2023-04-04 2:25 ` Laurent Pinchart
2023-04-03 15:40 ` [PATCH 14/24] staging: media: rkvdec: " Uwe Kleine-König
2023-04-03 15:40 ` [PATCH 15/24] staging: media: sunxi: cedrus: " Uwe Kleine-König
2023-04-04 8:47 ` Paul Kocialkowski
2023-04-04 16:53 ` Jernej Škrabec
2023-04-03 15:40 ` [PATCH 16/24] staging: media: sun6i-isp: " Uwe Kleine-König
2023-04-04 8:47 ` Paul Kocialkowski
2023-04-04 16:54 ` Jernej Škrabec
2023-04-03 19:50 ` [PATCH 00/24] staging: " Greg Kroah-Hartman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox