CVE-2026-80902: dmaengine: sun6i-dma: Fix reclaim descriptors while terminating DMA
In the Linux kernel, the following vulnerability has been resolved:
dmaengine: sun6i-dma: Fix reclaim descriptors while terminating DMA
When terminating DMA transfers, active descriptors are not properly reclaimed. Only cyclic descriptors were handled, leaving non-cyclic descriptors and their LLI chains to be permanently leaked.
Fix by using vchanterminatevdesc() which handles both cyclic and non-cyclic descriptors by adding them to descterminated queue for proper cleanup.
Add pchan->desc != pchan->done check to prevent double-adding completed descriptors, which would corrupt the list.
Affected Software
Event History
Frequently Asked Questions
Which systems are exposed to this issue?
Systems using the Linux kernel's sun6i-dma DMA engine driver are relevant. The issue occurs when DMA transfers are terminated, particularly because non-cyclic descriptors and their LLI chains were not reclaimed.
What is the practical impact if the issue is triggered?
Terminating affected DMA transfers can permanently leak non-cyclic DMA descriptors and their LLI chains. A completed descriptor may also be added twice during termination, corrupting the descriptor list.
How can administrators determine whether their kernel includes the fix?
Check whether the kernel source or vendor patch set includes the referenced stable commits: bb87440561eb72b47a2b848b5373b86433b247e6, 004a7a02982bed0a727a4ac7be400f00f353e7a2, or b150f603083cc8b72b0cbf13ec3e91f85b4390a0. The corrected code uses vchan_terminate_vdesc() during termination and avoids adding pchan->desc when it equals pchan->done.