Re: [PATCH 4/4] dmaengine: rcar-dmac: Fix runtime PM leak in error path of channel alloc

From: Wolfram Sang

Date: Thu Sep 17 2026 - 02:22:51 EST


On Wed, Sep 16, 2026 at 02:25:50PM -0500, Frank Li wrote:
> On Tue, Sep 15, 2026 at 03:56:02AM +0000, Wentao Liang wrote:
> > [You don't often get email from vulab@xxxxxxxxxxx. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
> >
> > rcar_dmac_alloc_chan_resources() ends with
> > "return pm_runtime_get_sync(chan->device->dev);". Even when
> > pm_runtime_get_sync() fails, it leaves the device's runtime PM
> > usage count incremented, and the negative return value propagates
> > straight to the dmaengine core, which aborts the channel
> > allocation without ever calling device_free_chan_resources(). The
> > balanced pm_runtime_put() only happens later in
> > rcar_dmac_free_chan_resources(), so the reference is leaked
> > whenever resuming the device fails.
> >
> > Use pm_runtime_resume_and_get() instead, which drops the reference
> > again on failure and returns 0 on success.
> >
> > Fixes: 87244fe5abdf ("dmaengine: rcar-dmac: Add Renesas R-Car Gen2 DMA Controller (DMAC) driver")
> > Cc: stable@xxxxxxxxxxxxxxx
> > Signed-off-by: Wentao Liang <vulab@xxxxxxxxxxx>
> > ---
>
> Reviewed-by: Frank Li <Frank.Li@xxxxxxx>

I'll take the liberty to add this tag to the old, 100% identical patch I
am going to resend soon (together with other patches for rcar-dmac which
fell through cracks)

Attachment: signature.asc
Description: PGP signature