spi: sprd: fix error pointer deref after DMA setup failure
The driver falls back to PIO mode if DMA setup fails during probe.
Make sure to check the dma.enabled flag before trying to release the DMA
channels also on late probe errors to avoid dereferencing an error
pointer (or attempting to release a channel a second time).
This issue was flagged by Sashiko when reviewing a devres allocation
conversion patch.
Fixes: 386119bc7b ("spi: sprd: spi: sprd: Add DMA mode support")
Link: https://sashiko.dev/#/patchset/20260505072909.618363-1-johan%40kernel.org?part=10
Cc: stable@vger.kernel.org # 5.1
Cc: Lanqing Liu <lanqing.liu@unisoc.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://patch.msgid.link/20260512074733.915029-1-johan@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
a7e8f3efd5
commit
3d67fffb74
1 changed files with 2 additions and 1 deletions
|
|
@ -991,7 +991,8 @@ err_rpm_put:
|
|||
disable_clk:
|
||||
clk_disable_unprepare(ss->clk);
|
||||
release_dma:
|
||||
sprd_spi_dma_release(ss);
|
||||
if (ss->dma.enable)
|
||||
sprd_spi_dma_release(ss);
|
||||
free_controller:
|
||||
spi_controller_put(sctlr);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue