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