Re: [PATCH 6.1 001/162] spi: zynqmp-gqspi: Convert to platform remove callback returning void

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

On Mon, Oct 09, 2023 at 02:59:42PM +0200, Greg Kroah-Hartman wrote:
> 6.1-stable review patch.  If anyone has any objections, please let me know.
> 
> ------------------
> 
> From: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
> 
> [ Upstream commit 3ffefa1d9c9eba60c7f8b4a9ce2df3e4c7f4a88e ]
> 
> 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@xxxxxxxxxxxxxx>
> Link: https://lore.kernel.org/r/20230303172041.2103336-88-u.kleine-koenig@xxxxxxxxxxxxxx
> Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
> Stable-dep-of: 1527b076ae2c ("spi: zynqmp-gqspi: fix clock imbalance on probe failure")
> Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

While I don't think this patch is dangerous to backport, the more
conservative option of directly applying 1527b076ae2c would have been
the one I'd chosen.

The simple(?) conflict resolution for picking 1527b076ae2c on top of
v6.1.56 looks as follows:

diff --cc drivers/spi/spi-zynqmp-gqspi.c
index c760aac070e5,c309dedfd602..000000000000
--- a/drivers/spi/spi-zynqmp-gqspi.c
+++ b/drivers/spi/spi-zynqmp-gqspi.c
@@@ -1244,20 -1368,17 +1244,24 @@@ static int zynqmp_qspi_remove(struct pl
  {
  	struct zynqmp_qspi *xqspi = platform_get_drvdata(pdev);
  
+ 	pm_runtime_get_sync(&pdev->dev);
+ 
  	zynqmp_gqspi_write(xqspi, GQSPI_EN_OFST, 0x0);
+ 
+ 	pm_runtime_disable(&pdev->dev);
+ 	pm_runtime_put_noidle(&pdev->dev);
+ 	pm_runtime_set_suspended(&pdev->dev);
  	clk_disable_unprepare(xqspi->refclk);
  	clk_disable_unprepare(xqspi->pclk);
- 	pm_runtime_set_suspended(&pdev->dev);
- 	pm_runtime_disable(&pdev->dev);
 +
 +	return 0;
  }
  
 +static const struct of_device_id zynqmp_qspi_of_match[] = {
 +	{ .compatible = "xlnx,zynqmp-qspi-1.0", },
 +	{ /* End of table */ }
 +};
 +
  MODULE_DEVICE_TABLE(of, zynqmp_qspi_of_match);
  
  static struct platform_driver zynqmp_qspi_driver = {

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux