mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 23:22:31 +02:00
spi: ti-qspi: fix use-after-free after DMA setup failure
The driver falls back to PIO mode if DMA setup fails during probe.
Make sure to clear the DMA channel pointer also if buffer allocation
fails to avoid passing a pointer to the released channel to the DMA
engine (or trying to free the channel a second time on late probe errors
or driver unbind).
This issue was flagged by Sashiko when reviewing a devres allocation
conversion patch.
Fixes: c687c46e9e ("spi: spi-ti-qspi: Use bounce buffer if read buffer is not DMA'ble")
Link: https://sashiko.dev/#/patchset/20260505072909.618363-1-johan%40kernel.org?part=17
Cc: stable@vger.kernel.org # 4.12
Cc: Vignesh R <vigneshr@ti.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://patch.msgid.link/20260512074809.915084-1-johan@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
3d67fffb74
commit
ea6ec3343e
|
|
@ -867,6 +867,7 @@ static int ti_qspi_probe(struct platform_device *pdev)
|
|||
dev_err(qspi->dev,
|
||||
"dma_alloc_coherent failed, using PIO mode\n");
|
||||
dma_release_channel(qspi->rx_chan);
|
||||
qspi->rx_chan = NULL;
|
||||
goto no_dma;
|
||||
}
|
||||
host->dma_rx = qspi->rx_chan;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user