From: sashiko-bot@kernel.org
To: "Logan Gunthorpe" <logang@deltatee.com>, dmaengine@vger.kernel.org
Cc: vkoul@kernel.org, Frank.Li@kernel.org
Subject: Re: [PATCH v2 4/6] dmaengine: plx_dma: add dma_rmb() after observing write-back status
Date: Tue, 10 Nov 2026 18:08:44 +0000 [thread overview]
Message-ID: <sashiko-outbox-207559@kernel.org> (raw)
In-Reply-To: <20261110173927.624629-5-logang@deltatee.com>
Thank you for your contribution! Sashiko AI review found 1 potential
issue to consider:
- [Low] dmaengine: plx_dma: missing Fixes trailer in
plx_dma_process_desc()
--
commit 201d751ec8320e51bb4d2cc4d33f8ffc4f32e196
Author: Logan Gunthorpe <logang@deltatee.com>
> dmaengine: plx_dma: add dma_rmb() after observing write-back status
>
> Completing a descriptor involves two loads that must be ordered:
>
> 1. Reading desc->hw->flags_and_size and checking that VALID is clear.
> 2. Reading the destination buffer, which may happen in:
> a. dma_unmap_page() via dmaengine_unmap(), when a bounce buffer
> is in use.
> b. The client's callback, or its processing after polling with
> tx_status().
>
> On a weakly ordered CPU like arm64, nothing forces load 2 to happen
> after load 1, even though load 2 is only reached when load 1 says the
> transfer is done. The CPU can predict that the VALID check won't
> break out of the loop and issue load 2 early. If the device hadn't
> finished writing at that moment, load 2 returns stale data, and when
> load 1 then confirms the prediction nothing is redone, so the stale
> data is used. This is the load-load control dependency case described
> in Documentation/memory-barriers.txt.
>
> Add a dma_rmb() after the status check so loads after it can't be
> satisfied before the status read.
>
> Reported-by: Sashiko <sashiko-bot@kernel.org>
> Link: https://lore.kernel.org/dmaengine/20260717223217.B6FBF1F000E9@smtp.kernel.org
> Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
[Severity: Low]
Since this fixes an ordering bug in plx_dma_process_desc(), should the
commit message include a Fixes tag?
Fixes: c2dbcaa8c672 ("dmaengine: plx-dma: Implement hardware initialization and cleanup")
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261110173927.624629-1-logang@deltatee.com?part=4
next prev parent reply other threads:[~2026-11-10 18:08 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-10 17:39 [PATCH v2 0/6] plx_dma fixes Logan Gunthorpe
2026-11-10 17:39 ` [PATCH v2 1/6] dmaengine: plx_dma: don't call pci_irq_vector() under rcu_read_lock() Logan Gunthorpe
2026-11-10 17:39 ` [PATCH v2 2/6] dmaengine: plx_dma: fix descriptor ring leak in alloc_chan_resources() Logan Gunthorpe
2026-11-10 17:58 ` sashiko-bot
2026-11-10 18:15 ` Logan Gunthorpe
2026-11-10 20:52 ` Logan Gunthorpe
2026-11-10 17:39 ` [PATCH v2 3/6] dmaengine: plx_dma: use writel() for the 32-bit PLX_REG_CTRL register Logan Gunthorpe
2026-11-10 17:39 ` [PATCH v2 4/6] dmaengine: plx_dma: add dma_rmb() after observing write-back status Logan Gunthorpe
2026-11-10 18:08 ` sashiko-bot [this message]
2026-11-10 17:39 ` [PATCH v2 5/6] dmaengine: plx_dma: use spin_lock_bh() in plx_dma_process_desc() Logan Gunthorpe
2026-11-10 18:13 ` sashiko-bot
2026-11-10 17:39 ` [PATCH v2 6/6] dmaengine: plx_dma: don't invoke client callbacks with ring_lock held Logan Gunthorpe
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=sashiko-outbox-207559@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=Frank.Li@kernel.org \
--cc=dmaengine@vger.kernel.org \
--cc=logang@deltatee.com \
--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.