| From e28c92a1f8305176eb0b2b4039825592dbe3350d Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 19 Sep 2023 15:31:20 +0200 |
| Subject: dmaengine: fsl-edma-main: Convert to platform remove callback |
| returning void |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> |
| |
| [ Upstream commit fa13c3ef3f45bca5a1474755dac57bfaf28ef61b ] |
| |
| 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() is renamed to .remove(). |
| |
| 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> |
| Link: https://lore.kernel.org/r/20230919133207.1400430-13-u.kleine-koenig@pengutronix.de |
| Signed-off-by: Vinod Koul <vkoul@kernel.org> |
| Stable-dep-of: 666c53e94c1d ("dmaengine: fsl-edma: don't explicitly disable clocks in .remove()") |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/dma/fsl-edma-main.c | 6 ++---- |
| 1 file changed, 2 insertions(+), 4 deletions(-) |
| |
| diff --git a/drivers/dma/fsl-edma-main.c b/drivers/dma/fsl-edma-main.c |
| index eccbcf67951fb..7dedd85d74d9b 100644 |
| --- a/drivers/dma/fsl-edma-main.c |
| +++ b/drivers/dma/fsl-edma-main.c |
| @@ -669,7 +669,7 @@ static int fsl_edma_probe(struct platform_device *pdev) |
| return 0; |
| } |
| |
| -static int fsl_edma_remove(struct platform_device *pdev) |
| +static void fsl_edma_remove(struct platform_device *pdev) |
| { |
| struct device_node *np = pdev->dev.of_node; |
| struct fsl_edma_engine *fsl_edma = platform_get_drvdata(pdev); |
| @@ -679,8 +679,6 @@ static int fsl_edma_remove(struct platform_device *pdev) |
| dma_async_device_unregister(&fsl_edma->dma_dev); |
| fsl_edma_cleanup_vchan(&fsl_edma->dma_dev); |
| fsl_disable_clocks(fsl_edma, fsl_edma->drvdata->dmamuxs); |
| - |
| - return 0; |
| } |
| |
| static int fsl_edma_suspend_late(struct device *dev) |
| @@ -749,7 +747,7 @@ static struct platform_driver fsl_edma_driver = { |
| .pm = &fsl_edma_pm_ops, |
| }, |
| .probe = fsl_edma_probe, |
| - .remove = fsl_edma_remove, |
| + .remove_new = fsl_edma_remove, |
| }; |
| |
| static int __init fsl_edma_init(void) |
| -- |
| 2.51.0 |
| |