All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Koichiro Den" <den@valinux.co.jp>
Cc: Frank.Li@kernel.org, vkoul@kernel.org, dmaengine@vger.kernel.org
Subject: Re: [PATCH v5 03/14] dmaengine: dw-edma: Add core quiesce operations
Date: Fri, 17 Jul 2026 05:17:38 +0000	[thread overview]
Message-ID: <20260717051738.EDC921F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260717050308.2144108-4-den@valinux.co.jp>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:

Pre-existing issues:
- [High] dw_edma_v0_core_off() fails to actually stop the DMA engines in HDMA compatibility mode because it relies on the non-existent ENGINE_EN register.
--

--- Patch [3]: [PATCH v5 03/14] dmaengine: dw-edma: Add core quiesce operations ---
commit b74cbf35e0d2a9867f8a66e3ed4776b896fc6152
Author: Koichiro Den <den@valinux.co.jp>

dmaengine: dw-edma: Add core quiesce operations

This commit adds core operations to quiesce only the resources represented
by a dw-edma instance. It implements specific handling for unrolled eDMA
and HDMA compatibility mode.

> diff --git a/drivers/dma/dw-edma/dw-edma-v0-core.c b/drivers/dma/dw-edma/dw-edma-v0-core.c
> --- a/drivers/dma/dw-edma/dw-edma-v0-core.c
> +++ b/drivers/dma/dw-edma/dw-edma-v0-core.c
[ ... ]
>  static void dw_edma_v0_core_off(struct dw_edma *dw)
>  {
>  	SET_BOTH_32(dw, int_mask,
>  		    EDMA_V0_DONE_INT_MASK | EDMA_V0_ABORT_INT_MASK);
>  	SET_BOTH_32(dw, int_clear,
>  		    EDMA_V0_DONE_INT_MASK | EDMA_V0_ABORT_INT_MASK);
>  	SET_BOTH_32(dw, engine_en, 0);
>  }

[Severity: High]
This isn't a bug introduced by this patch, but looking at
dw_edma_v0_core_off() in drivers/dma/dw-edma/dw-edma-v0-core.c, does it
fail to actually stop the DMA engines in HDMA compatibility mode?

Since HDMA compatibility mode does not implement the ENGINE_EN register (as
noted in the commit message and addressed in the new quiesce path), writing
0 to engine_en here doesn't seem to stop the channels.

If a user unbinds the driver or unloads the module, could the DMA controller
continue executing transfers into memory that is subsequently unmapped and
freed, since chX_pwr_en is never cleared during the remove path?

>  
> +static int dw_edma_v0_core_quiesce(struct dw_edma *dw)
> +{
> +	int ret = 0;
> +	int err;

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260717050308.2144108-1-den@valinux.co.jp?part=3

  reply	other threads:[~2026-07-17  5:17 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-17  5:02 [PATCH v5 00/14] dmaengine: dw-edma: Prepare for PCI EP DMA (part 1/3) Koichiro Den
2026-07-17  5:02 ` [PATCH v5 01/14] dmaengine: dw-edma: Factor out HDMA interrupt setup helper Koichiro Den
2026-07-17  5:02 ` [PATCH v5 02/14] dmaengine: dw-edma: Add per-channel interrupt routing control Koichiro Den
2026-07-17  5:21   ` sashiko-bot
2026-07-17  5:02 ` [PATCH v5 03/14] dmaengine: dw-edma: Add core quiesce operations Koichiro Den
2026-07-17  5:17   ` sashiko-bot [this message]
2026-07-17  5:02 ` [PATCH v5 04/14] dmaengine: dw-edma: Initialize IRQ data before requesting IRQs Koichiro Den
2026-07-17  5:16   ` sashiko-bot
2026-07-17  5:02 ` [PATCH v5 05/14] dmaengine: dw-edma: Add partial channel ownership mode Koichiro Den
2026-07-17  5:20   ` sashiko-bot
2026-07-17  5:03 ` [PATCH v5 06/14] dmaengine: dw-edma-pcie: Track non-LL mode in DMA data Koichiro Den
2026-07-17  5:03 ` [PATCH v5 07/14] dmaengine: dw-edma-pcie: Add capability match data Koichiro Den
2026-07-17  5:12   ` sashiko-bot
2026-07-17  5:03 ` [PATCH v5 08/14] dmaengine: dw-edma-pcie: Rename vsec_data to dma_data Koichiro Den
2026-07-17  5:03 ` [PATCH v5 09/14] dmaengine: dw-edma-pcie: Add platform ops to match data Koichiro Den
2026-07-17  5:03 ` [PATCH v5 10/14] dmaengine: dw-edma-pcie: Add register offset match flag Koichiro Den
2026-07-17  5:03 ` [PATCH v5 11/14] dmaengine: dw-edma-pcie: Factor out descriptor block address lookup Koichiro Den
2026-07-17  5:03 ` [PATCH v5 12/14] dmaengine: dw-edma-pcie: Handle optional data blocks Koichiro Den
2026-07-17  5:18   ` sashiko-bot
2026-07-17  5:03 ` [PATCH v5 13/14] dmaengine: dw-edma-pcie: Add chip flags to match data Koichiro Den
2026-07-17  5:03 ` [PATCH v5 14/14] dmaengine: dw-edma: Program endpoint function numbers Koichiro Den
2026-07-17  5:29   ` sashiko-bot

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=20260717051738.EDC921F000E9@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=Frank.Li@kernel.org \
    --cc=den@valinux.co.jp \
    --cc=dmaengine@vger.kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=vkoul@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.