]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
spi: sprd: fix error pointer deref after DMA setup failure
authorJohan Hovold <johan@kernel.org>
Tue, 12 May 2026 07:47:33 +0000 (09:47 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 18 May 2026 16:40:30 +0000 (17:40 +0100)
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: 386119bc7be9 ("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>
drivers/spi/spi-sprd.c

index fd3fd0ce122c93c483bb35780da8a4ef1f37d21b..acebf9c2e795a39ff808ca457b9c0b153cbc4f49 100644 (file)
@@ -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);