From: Vinod Koul <vkoul@kernel.org>
To: Koichiro Den <den@valinux.co.jp>
Cc: Frank Li <Frank.li@oss.nxp.com>,
Wolfram Sang <wsa+renesas@sang-engineering.com>,
linux-renesas-soc@vger.kernel.org, Frank Li <Frank.Li@kernel.org>,
Geert Uytterhoeven <geert+renesas@glider.be>,
Magnus Damm <magnus.damm@gmail.com>,
Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>,
dmaengine@vger.kernel.org
Subject: Re: [PATCH 2/3] dmaengine: rcar-dmac: Add missing dma_descriptor_unmap()
Date: Fri, 9 Oct 2026 11:23:02 +0200 [thread overview]
Message-ID: <asiydkH91ggpsE7B@parshuram> (raw)
In-Reply-To: <3odvtlxs62ulw4obrzfy3xlf74k4wltjkj6k4axsmdx3hnyo3a@rx2pm422eozp>
On 18-09-26, 22:07, Koichiro Den wrote:
> On Thu, Sep 17, 2026 at 11:39:28AM -0500, Frank Li wrote:
> > On Thu, Sep 17, 2026 at 09:12:07AM +0200, Wolfram Sang wrote:
> > > From: Koichiro Den <den@valinux.co.jp>
> > >
> > > Call dma_descriptor_unmap() right after dma_cookie_complete() in the
> > > threaded IRQ completion path. Without this, streaming DMA mappings
> > > attached to the descriptor are never released and may eventually exhaust
> > > DMA mapping resources (e.g. IOVA with an IOMMU or bounce-buffer slots
> > > with SWIOTLB), leading to dma_map_* failures.
> > >
> > > Also ensure dma_descriptor_unmap() is called in rcar_dmac_chan_reinit()
> > > (error/terminate path) to avoid the same type of leaks.
> > >
> > > Fixes: 87244fe5abdf ("dmaengine: rcar-dmac: Add Renesas R-Car Gen2 DMA Controller (DMAC) driver")
> > > Signed-off-by: Koichiro Den <den@valinux.co.jp>
> > > [wsa: added Fixes tag]
> > > Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
> > > ---
> > > drivers/dma/sh/rcar-dmac.c | 2 ++
> > > 1 file changed, 2 insertions(+)
> > >
> > > diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c
> > > index 5b54f1c4ce15..9155bceb723b 100644
> > > --- a/drivers/dma/sh/rcar-dmac.c
> > > +++ b/drivers/dma/sh/rcar-dmac.c
> > > @@ -844,6 +844,7 @@ static void rcar_dmac_chan_reinit(struct rcar_dmac_chan *chan)
> > >
> > > list_for_each_entry_safe(desc, _desc, &descs, node) {
> > > list_del(&desc->node);
> > > + dma_descriptor_unmap(&desc->async_tx);
> > > rcar_dmac_desc_put(chan, desc);
> > > }
> > > }
> > > @@ -1654,6 +1655,7 @@ static irqreturn_t rcar_dmac_isr_channel_thread(int irq, void *dev)
> > > desc = list_first_entry(&chan->desc.done, struct rcar_dmac_desc,
> > > node);
> > > dma_cookie_complete(&desc->async_tx);
> > > + dma_descriptor_unmap(&desc->async_tx);
> >
> > Does callback function still use these data? suppose should unmap after
> > callback return.
>
> Unmapping doesn't free the buffer, so I don't think accessing the buffer in the
> callback requires that order. Correct me if I misinterpret your point.
Yep, we are not freeing, we are unmapping from dma. This can be and should be
done here.
--
~Vinod
next prev parent reply other threads:[~2026-10-09 9:23 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-17 7:12 [PATCH 0/3] dmaengine: rcar-dmac: collection of small missed fixes Wolfram Sang
2026-09-17 7:12 ` [PATCH 1/3] dmaengine: rcar-dmac: Fix PM usage counter imbalance Wolfram Sang
2026-09-17 7:17 ` Laurent Pinchart
2026-09-17 7:12 ` [PATCH 2/3] dmaengine: rcar-dmac: Add missing dma_descriptor_unmap() Wolfram Sang
2026-09-17 7:25 ` sashiko-bot
2026-09-17 7:38 ` Laurent Pinchart
2026-09-17 8:23 ` Wolfram Sang
2026-09-17 16:39 ` Frank Li
2026-09-18 13:07 ` Koichiro Den
2026-09-27 12:43 ` Wolfram Sang
2026-09-27 13:11 ` Wolfram Sang
2026-09-29 4:13 ` Koichiro Den
2026-10-09 9:26 ` Vinod Koul
2026-10-09 9:23 ` Vinod Koul [this message]
2026-09-27 12:38 ` Wolfram Sang
2026-09-17 7:12 ` [PATCH 3/3] dmaengine: rcar-dmac: Remove redundant dev_err()/dev_err_probe() Wolfram Sang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=asiydkH91ggpsE7B@parshuram \
--to=vkoul@kernel.org \
--cc=Frank.Li@kernel.org \
--cc=Frank.li@oss.nxp.com \
--cc=den@valinux.co.jp \
--cc=dmaengine@vger.kernel.org \
--cc=geert+renesas@glider.be \
--cc=laurent.pinchart+renesas@ideasonboard.com \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=magnus.damm@gmail.com \
--cc=wsa+renesas@sang-engineering.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.