Re: [PATCH v3] dmaengine: qcom: gpi: Fix resource leaks as part of channel clean up
From: Mukesh Savaliya
Date: Tue Aug 25 2026 - 00:49:29 EST
On 8/19/2026 5:09 PM, Aniket Randive wrote:
The gpi_ch_init() error handling paths do not fully clean up resourcesReviewed-by: Mukesh Kumar Savaliya <mukesh.savaliya@xxxxxxxxxxxxxxxx>
when channel initialization fails.
The unwind paths iterate over the original channel pointer instead of
the channels stored in gpii->gchan[], preventing previously initialized
sibling channels from being properly reset and deallocated.
In addition, gpi_alloc_chan_resources() allocates ch_ring before calling
gpi_ch_init(), but does not release it when initialization fails,
resulting in a memory leak.
The event ring cleanup path also leaves the PM state unchanged after
freeing the ring. As a result, subsequent cleanup may incorrectly assume
that the ring is still allocated, leading to a redundant EV_CMD_DEALLOC
command and an attempt to deallocate an already released ring.
Fix the unwind paths to operate on the correct channels, release
ch_ring when channel initialization fails, and restore the event ring
PM state after freeing the ring.
Signed-off-by: Aniket Randive <aniket.randive@xxxxxxxxxxxxxxxx>
---