mirror of
https://github.com/torvalds/linux.git
synced 2026-10-16 04:39:02 +02:00
There are a few issues here:
1) After we assign:
chan = dma_request_chan(&pdev->dev, "tx");
Then the error paths need to clean up before returning. The first
error path does a direct return.
2) The error paths check "dcmi->mdma_chan" but that is not assigned
until later so it results in memory leaks. Test "mdma_chan"
instead.
3) The error handling calls dma_release_channel(dcmi->dma_chan) before
"dcmi->dma_chan" has been assigned which leads to a NULL pointer
dereference. Use the "chan" variable instead.
I also moved the call to dma_release_channel() after the call to
dma_release_channel() so it mirrors the allocation code better.
Fixes:
|
||
|---|---|---|
| .. | ||
| dma2d | ||
| stm32-dcmipp | ||
| Kconfig | ||
| Makefile | ||
| stm32-csi.c | ||
| stm32-dcmi.c | ||