* [PATCH 00/24] staging: Convert to platform remove callback returning void
@ 2023-04-03 15:39 Uwe Kleine-König
2023-04-03 15:40 ` [PATCH 14/24] staging: media: rkvdec: " Uwe Kleine-König
2023-04-03 19:50 ` [PATCH 00/24] staging: " Greg Kroah-Hartman
0 siblings, 2 replies; 3+ 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
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
^ permalink raw reply [flat|nested] 3+ 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
@ 2023-04-03 15:40 ` Uwe Kleine-König
2023-04-03 19:50 ` [PATCH 00/24] staging: " Greg Kroah-Hartman
1 sibling, 0 replies; 3+ 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
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
^ permalink raw reply related [flat|nested] 3+ 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
2023-04-03 15:40 ` [PATCH 14/24] staging: media: rkvdec: " Uwe Kleine-König
@ 2023-04-03 19:50 ` Greg Kroah-Hartman
1 sibling, 0 replies; 3+ 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
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-04-03 19:51 UTC | newest]
Thread overview: 3+ 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:40 ` [PATCH 14/24] staging: media: rkvdec: " Uwe Kleine-König
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;
as well as URLs for NNTP newsgroup(s).