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]

 



On Mon, Oct 09, 2023 at 05:49:49PM +0200, Uwe Kleine-König wrote:
> 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 = {
> 

Agreed, I've dropped the one patch and fixed this one up to look like
this, thanks.

greg k-h



[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