Re: [PATCH 5.10 012/491] bus: omap-ocp2scp: Convert to platform remove callback returning void

Ben Hutchings
2026-04-14T19:35:59Z

[-- Attachment #1: Type: text/plain, Size: 2513 bytes --]

On Mon, 2026-04-13 at 17:54 +0200, Greg Kroah-Hartman wrote:
> 5.10-stable review patch. If anyone has any objections, please let me know.
>
> ------------------
>
> From: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
>
> [ Upstream commit 854f89a5b56354ba4135e0e1f0e57ab2caee59ee ]
>
> 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 ignored (apart
> from emitting a warning) 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. Eventually after all drivers
> are converted, .remove_new() will be renamed to .remove().

But platform_driver::remove_new doesn't exist in 5.10 so this breaks the
build.

Ben.

> Trivially convert this driver from always returning zero in the remove
> callback to the void returning variant.
>
> Link: https://lore.kernel.org/r/20231109202830.4124591-3-u.kleine-koenig@pengutronix.de
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> Stable-dep-of: 5eb63e9bb65d ("bus: omap-ocp2scp: fix OF populate on driver rebind")
> Signed-off-by: Sasha Levin <sashal@kernel.org>
> ---
> drivers/bus/omap-ocp2scp.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/bus/omap-ocp2scp.c b/drivers/bus/omap-ocp2scp.c
> index e02d0656242b8..7d7479ba0a759 100644
> --- a/drivers/bus/omap-ocp2scp.c
> +++ b/drivers/bus/omap-ocp2scp.c
> @@ -84,12 +84,10 @@ static int omap_ocp2scp_probe(struct platform_device *pdev)
> return ret;
> }
>
> -static int omap_ocp2scp_remove(struct platform_device *pdev)
> +static void omap_ocp2scp_remove(struct platform_device *pdev)
> {
> pm_runtime_disable(&pdev->dev);
> device_for_each_child(&pdev->dev, NULL, ocp2scp_remove_devices);
> -
> - return 0;
> }
>
> #ifdef CONFIG_OF
> @@ -103,7 +101,7 @@ MODULE_DEVICE_TABLE(of, omap_ocp2scp_id_table);
>
> static struct platform_driver omap_ocp2scp_driver = {
> .probe = omap_ocp2scp_probe,
> - .remove = omap_ocp2scp_remove,
> + .remove_new = omap_ocp2scp_remove,
> .driver = {
> .name = "omap-ocp2scp",
> .of_match_table = of_match_ptr(omap_ocp2scp_id_table),

--
Ben Hutchings
73.46% of all statistics are made up.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 833 bytes --]