All of lore.kernel.org
 help / color / mirror / Atom feed
From: Leon Romanovsky <leon@kernel.org>
To: sashiko-reviews@lists.linux.dev
Cc: linux-pci@vger.kernel.org, dri-devel@lists.freedesktop.org,
	linux-rdma@vger.kernel.org, kvm@vger.kernel.org,
	media-ci@linuxtv.org
Subject: Re: [PATCH v11 10/19] PCI/P2PDMA: Reject Translated Requests blocked by Translation Blocking
Date: Wed, 14 Oct 2026 09:50:51 +0300	[thread overview]
Message-ID: <20261014065051.GV219304@unreal> (raw)
In-Reply-To: <sashiko-outbox-169939@kernel.org>

On Tue, Oct 13, 2026 at 02:49:05PM +0000, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [High] pci/p2pdma: deadlock in calc_map_type_and_dist() due to non-IRQ-safe xa_store()
> --
> 
> commit f019da119f00a99a75cbfe2deec0db131a89232d
> Author: Leon Romanovsky <leon@kernel.org>
> 
> PCI/P2PDMA: Reject Translated Requests blocked by Translation Blocking
>     
> ACS Translation Blocking rejects upstream Memory Requests with a Translated
> address before any peer-routing controls apply, per PCIe r7.0 sec 6.12.1.1.
> P2PDMA ignores that bit and can report a route whose ports reject the
> Requester's address type.
>     
> Add PCI_ACS_P2PDMA_BLOCKED and scan the ports traversed by each route. A
> direct route passes only ports below the divergence; a host-bridge route
> also passes the common port and its ancestors. Reject the affected class
> without falling back to another route, and preserve blocking precedence
> over internal-route restrictions.
> 
> > diff --git a/drivers/pci/p2pdma.c b/drivers/pci/p2pdma.c
> > index 785e4668a2af5..fc4dea28c8606 100644
> > --- a/drivers/pci/p2pdma.c
> > +++ b/drivers/pci/p2pdma.c
> [ ... ]
> > @@ -1162,6 +1252,11 @@ calc_map_type_and_dist(struct pci_dev *provider, struct pci_dev *client,
> >  		}
> >  	}
> >  
> > +	path.tb_on_path = pci_p2pdma_path_blocks_translation(client, a);
> > +	if (b_child)
> > +		path.tb_above_divergence =
> > +			pci_p2pdma_path_blocks_translation(b_child, NULL);
> > +
> >  	/*
> >  	 * The walk and the config reads above serve every class; only the
> >  	 * decision below depends on the kind of TLP being routed.
> 
> [Severity: High]
> Does xa_store() use an IRQ-safe lock here?

Same, this not-safe path is not taken in current codebase.

Thanks

  reply	other threads:[~2026-10-14  6:51 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-13 14:25 [PATCH v11 00/19] PCI/P2PDMA: Route peer-to-peer DMA by TLP class Leon Romanovsky
2026-10-13 14:25 ` [PATCH v11 01/19] PCI/P2PDMA: Honor device-specific ACS redirection Leon Romanovsky
2026-10-13 14:44   ` sashiko-bot
2026-10-14  6:49     ` Leon Romanovsky
2026-10-13 14:25 ` [PATCH v11 02/19] PCI/P2PDMA: Document the TLP attribute assumptions Leon Romanovsky
2026-10-13 14:28   ` sashiko-bot
2026-10-13 14:25 ` [PATCH v11 03/19] PCI/P2PDMA: Derive routing from directional ACS controls Leon Romanovsky
2026-10-13 14:32   ` sashiko-bot
2026-10-13 14:25 ` [PATCH v11 04/19] PCI: Reject unreadable ACS controls in isolation checks Leon Romanovsky
2026-10-13 14:37   ` sashiko-bot
2026-10-13 14:25 ` [PATCH v11 05/19] PCI/P2PDMA: Evaluate ACS controls at the path divergence Leon Romanovsky
2026-10-13 14:38   ` sashiko-bot
2026-10-13 14:25 ` [PATCH v11 06/19] PCI/P2PDMA: Document directional ACS routing Leon Romanovsky
2026-10-13 14:28   ` sashiko-bot
2026-10-13 14:25 ` [PATCH v11 07/19] PCI/P2PDMA: Collect the path's ACS controls before deciding Leon Romanovsky
2026-10-13 14:32   ` sashiko-bot
2026-10-13 14:25 ` [PATCH v11 08/19] PCI/P2PDMA: Answer routing per TLP class Leon Romanovsky
2026-10-13 14:34   ` sashiko-bot
2026-10-13 14:25 ` [PATCH v11 09/19] PCI/P2PDMA: Route Relaxed Ordering Completions directly Leon Romanovsky
2026-10-13 14:37   ` sashiko-bot
2026-10-14  6:46     ` Leon Romanovsky
2026-10-13 14:25 ` [PATCH v11 10/19] PCI/P2PDMA: Reject Translated Requests blocked by Translation Blocking Leon Romanovsky
2026-10-13 14:49   ` sashiko-bot
2026-10-14  6:50     ` Leon Romanovsky [this message]
2026-10-13 14:25 ` [PATCH v11 11/19] PCI/P2PDMA: Route Translated Requests under Direct Translated P2P Leon Romanovsky
2026-10-13 14:36   ` sashiko-bot
2026-10-13 14:25 ` [PATCH v11 12/19] PCI/P2PDMA: Log detailed ACS routing diagnostics Leon Romanovsky
2026-10-13 14:40   ` sashiko-bot
2026-10-13 14:25 ` [PATCH v11 13/19] PCI/P2PDMA: Add KUnit tests for the ACS routing decisions Leon Romanovsky
2026-10-13 14:40   ` sashiko-bot
2026-10-13 14:25 ` [PATCH v11 14/19] PCI/P2PDMA: Test the ACS P2P routing walk Leon Romanovsky
2026-10-13 14:49   ` sashiko-bot
2026-10-13 14:25 ` [PATCH v11 15/19] PCI: Add KUnit coverage for ACS isolation checks Leon Romanovsky
2026-10-13 14:44   ` sashiko-bot
2026-10-13 14:25 ` [PATCH v11 16/19] PCI/P2PDMA: Document TLP-class routing Leon Romanovsky
2026-10-13 14:39   ` sashiko-bot
2026-10-13 14:25 ` [PATCH v11 17/19] PCI/P2PDMA: Let a client declare that it selects ATS per mapping Leon Romanovsky
2026-10-13 14:47   ` sashiko-bot
2026-10-13 14:25 ` [PATCH v11 18/19] PCI/P2PDMA: Evaluate the ATS path for clients with ATS enabled Leon Romanovsky
2026-10-13 14:47   ` sashiko-bot
2026-10-13 14:25 ` [PATCH v11 19/19] PCI/P2PDMA: Test the routing of " Leon Romanovsky
2026-10-13 14:47   ` sashiko-bot
2026-10-14  6:53 ` [PATCH v11 00/19] PCI/P2PDMA: Route peer-to-peer DMA by TLP class Leon Romanovsky
2026-10-14 13:23   ` Bjorn Helgaas
2026-10-14 14:49     ` Leon Romanovsky

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=20261014065051.GV219304@unreal \
    --to=leon@kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=media-ci@linuxtv.org \
    --cc=sashiko-reviews@lists.linux.dev \
    /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.