From: Frank Li <Frank.li@oss.nxp.com>
To: "Peng Fan (OSS)" <peng.fan@oss.nxp.com>
Cc: Frank Li <Frank.Li@nxp.com>, Vinod Koul <vkoul@kernel.org>,
"Joerg Roedel (AMD)" <joro@8bytes.org>,
Will Deacon <will@kernel.org>,
Robin Murphy <robin.murphy@arm.com>,
Laxman Dewangan <ldewangan@nvidia.com>,
Jon Hunter <jonathanh@nvidia.com>,
Thierry Reding <thierry.reding@kernel.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Sascha Hauer <s.hauer@pengutronix.de>,
Pengutronix Kernel Team <kernel@pengutronix.de>,
Fabio Estevam <festevam@gmail.com>,
Frank Li <Frank.Li@kernel.org>,
Larisa IIeana Grigore <larisa.grigore@nxp.com>,
imx@lists.linux.dev, dmaengine@vger.kernel.org,
linux-kernel@vger.kernel.org, iommu@lists.linux.dev,
linux-tegra@vger.kernel.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, Peng Fan <peng.fan@nxp.com>
Subject: Re: [PATCH v5 1/7] dmaengine: fsl-edma: unregister channels before vchan cleanup
Date: Wed, 11 Nov 2026 11:27:31 -0600 [thread overview]
Message-ID: <avSlg1SXLBBF9bzZ@SMW015318> (raw)
In-Reply-To: <20261111-edma-iommu-v3-v5-1-2537cebe6ca2@nxp.com>
On Wed, Nov 11, 2026 at 09:47:29PM +0800, Peng Fan (OSS) wrote:
> From: Peng Fan <peng.fan@nxp.com>
>
> Since commit 4035726a6b72 ("dmaengine: fsl-edma: Use managed API
> dmaenginem_async_device_register()"), dma_async_device_unregister() runs
> as a devres action after fsl_edma_remove(). However, fsl_edma_remove()
> still calls fsl_edma_cleanup_vchan() first, which removes every channel
> from dma_dev.channels. When the devres action later runs,
> dma_async_device_unregister() sees an empty channel list and never
> unregisters the channel devices. They remain visible in /sys/class/dma.
>
> Keep the vchan cleanup, but register it as a devres action before
> dmaenginem_async_device_register(). Devres actions run in reverse
> order, so the DMA channels are unregistered first and the vchan list is
> cleaned up afterwards. Remove the premature cleanup call from
> fsl_edma_remove().
>
> Fixes: 4035726a6b72 ("dmaengine: fsl-edma: Use managed API dmaenginem_async_device_register()")
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
> ---
Reviewed-by: Frank Li <Frank.Li@nxp.com>
> drivers/dma/fsl-edma-main.c | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/dma/fsl-edma-main.c b/drivers/dma/fsl-edma-main.c
> index da5139911488..7f82dcb7831d 100644
> --- a/drivers/dma/fsl-edma-main.c
> +++ b/drivers/dma/fsl-edma-main.c
> @@ -31,6 +31,11 @@ static void fsl_edma_synchronize(struct dma_chan *chan)
> vchan_synchronize(&fsl_chan->vchan);
> }
>
> +static void fsl_edma_cleanup_vchan_action(void *data)
> +{
> + fsl_edma_cleanup_vchan(data);
> +}
> +
> static irqreturn_t fsl_edma_tx_handler(int irq, void *dev_id)
> {
> struct fsl_edma_engine *fsl_edma = dev_id;
> @@ -881,6 +886,12 @@ static int fsl_edma_probe(struct platform_device *pdev)
>
> platform_set_drvdata(pdev, fsl_edma);
>
> + ret = devm_add_action_or_reset(&pdev->dev,
> + fsl_edma_cleanup_vchan_action,
> + &fsl_edma->dma_dev);
> + if (ret)
> + return ret;
> +
> ret = dmaenginem_async_device_register(&fsl_edma->dma_dev);
> if (ret)
> return dev_err_probe(&pdev->dev, ret,
> @@ -905,7 +916,6 @@ static void fsl_edma_remove(struct platform_device *pdev)
> struct fsl_edma_engine *fsl_edma = platform_get_drvdata(pdev);
>
> fsl_edma_irq_exit(pdev, fsl_edma);
> - fsl_edma_cleanup_vchan(&fsl_edma->dma_dev);
> }
>
> static int fsl_edma_suspend_late(struct device *dev)
>
> --
> 2.34.1
>
next prev parent reply other threads:[~2026-11-11 17:27 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-11 13:47 [PATCH v5 0/7] dmaengine: add DMA channel bus and fsl-edma per-channel IOMMU support Peng Fan (OSS)
2026-11-11 13:47 ` [PATCH v5 1/7] dmaengine: fsl-edma: unregister channels before vchan cleanup Peng Fan (OSS)
2026-11-11 17:27 ` Frank Li [this message]
2026-11-11 13:47 ` [PATCH v5 2/7] dmaengine: add a bus for DMA channel devices Peng Fan (OSS)
2026-11-11 17:31 ` Frank Li
2026-11-12 0:27 ` Peng Fan
2026-11-12 2:16 ` Frank Li
2026-11-12 3:13 ` Peng Fan
2026-11-11 13:47 ` [PATCH v5 3/7] iommu: register the DMA channel bus for IOMMU notifications Peng Fan (OSS)
2026-11-11 13:47 ` [PATCH v5 4/7] dmaengine: move channel devices to the DMA channel bus Peng Fan (OSS)
2026-11-11 17:41 ` Frank Li
2026-11-11 13:47 ` [PATCH v5 5/7] dt-bindings: dma: fsl,edma: add per-channel child node support Peng Fan (OSS)
2026-11-11 13:47 ` [PATCH v5 6/7] dmaengine: fsl-edma: support per-channel DT child nodes Peng Fan (OSS)
2026-11-11 17:57 ` Frank Li
2026-11-12 0:41 ` Peng Fan
2026-11-11 13:47 ` [PATCH v5 7/7] arm64: dts: imx95: convert eDMA to per-channel " Peng Fan (OSS)
2026-11-11 17:59 ` Frank Li
2026-11-12 0:57 ` Peng Fan
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=avSlg1SXLBBF9bzZ@SMW015318 \
--to=frank.li@oss.nxp.com \
--cc=Frank.Li@kernel.org \
--cc=Frank.Li@nxp.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmaengine@vger.kernel.org \
--cc=festevam@gmail.com \
--cc=imx@lists.linux.dev \
--cc=iommu@lists.linux.dev \
--cc=jonathanh@nvidia.com \
--cc=joro@8bytes.org \
--cc=kernel@pengutronix.de \
--cc=krzk+dt@kernel.org \
--cc=larisa.grigore@nxp.com \
--cc=ldewangan@nvidia.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=peng.fan@nxp.com \
--cc=peng.fan@oss.nxp.com \
--cc=robh@kernel.org \
--cc=robin.murphy@arm.com \
--cc=s.hauer@pengutronix.de \
--cc=thierry.reding@kernel.org \
--cc=vkoul@kernel.org \
--cc=will@kernel.org \
/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.