Message ID | 2674c8df1d05ab312826b69bfe9559f81d125a0b.1744975624.git.christophe.jaillet@wanadoo.fr |
---|---|
State | New |
Headers | show |
Series | spi: stm32-ospi: Fix an error handling path in stm32_ospi_probe() | expand |
On 4/18/2025 4:57 PM, Christophe JAILLET wrote: [...] > diff --git a/drivers/spi/spi-stm32-ospi.c b/drivers/spi/spi-stm32-ospi.c > index 668022098b1e..9ec9823409cc 100644 > --- a/drivers/spi/spi-stm32-ospi.c > +++ b/drivers/spi/spi-stm32-ospi.c > @@ -960,6 +960,10 @@ static int stm32_ospi_probe(struct platform_device *pdev) > err_pm_enable: > pm_runtime_force_suspend(ospi->dev); > mutex_destroy(&ospi->lock); > + if (ospi->dma_chtx) > + dma_release_channel(ospi->dma_chtx); why can't you move to devm_dma_request_chan ? No need to cleanup. > + if (ospi->dma_chrx) > + dma_release_channel(ospi->dma_chrx); > > return ret; > }
On 4/18/25 13:27, Christophe JAILLET wrote: > If an error occurs after a successful stm32_ospi_dma_setup() call, some > dma_release_channel() calls are needed to release some resources, as > already done in the remove function. > > Fixes: 79b8a705e26c ("spi: stm32: Add OSPI driver") > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> > --- > Compile tested-only > --- > drivers/spi/spi-stm32-ospi.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/spi/spi-stm32-ospi.c b/drivers/spi/spi-stm32-ospi.c > index 668022098b1e..9ec9823409cc 100644 > --- a/drivers/spi/spi-stm32-ospi.c > +++ b/drivers/spi/spi-stm32-ospi.c > @@ -960,6 +960,10 @@ static int stm32_ospi_probe(struct platform_device *pdev) > err_pm_enable: > pm_runtime_force_suspend(ospi->dev); > mutex_destroy(&ospi->lock); > + if (ospi->dma_chtx) > + dma_release_channel(ospi->dma_chtx); > + if (ospi->dma_chrx) > + dma_release_channel(ospi->dma_chrx); > > return ret; > } Hi Christophe Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com> Thanks
diff --git a/drivers/spi/spi-stm32-ospi.c b/drivers/spi/spi-stm32-ospi.c index 668022098b1e..9ec9823409cc 100644 --- a/drivers/spi/spi-stm32-ospi.c +++ b/drivers/spi/spi-stm32-ospi.c @@ -960,6 +960,10 @@ static int stm32_ospi_probe(struct platform_device *pdev) err_pm_enable: pm_runtime_force_suspend(ospi->dev); mutex_destroy(&ospi->lock); + if (ospi->dma_chtx) + dma_release_channel(ospi->dma_chtx); + if (ospi->dma_chrx) + dma_release_channel(ospi->dma_chrx); return ret; }
If an error occurs after a successful stm32_ospi_dma_setup() call, some dma_release_channel() calls are needed to release some resources, as already done in the remove function. Fixes: 79b8a705e26c ("spi: stm32: Add OSPI driver") Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> --- Compile tested-only --- drivers/spi/spi-stm32-ospi.c | 4 ++++ 1 file changed, 4 insertions(+)