From: Jason Gunthorpe <jgg@nvidia.com>
To: Vasant Hegde <vasant.hegde@amd.com>
Cc: Pranjal Shrivastava <praan@google.com>,
iommu@lists.linux.dev, linux-pci@vger.kernel.org,
linux-kernel@vger.kernel.org, Joerg Roedel <joro@8bytes.org>,
Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>,
Ankit Soni <ankit.soni@amd.com>,
Bjorn Helgaas <bhelgaas@google.com>,
Samiullah Khawaja <skhawaja@google.com>,
sashiko-bot@kernel.org
Subject: Re: [PATCH v3 2/5] iommu/amd: Fix DTE clearing and rename iommu_ignore_device()
Date: Fri, 4 Sep 2026 11:25:47 -0300 [thread overview]
Message-ID: <20260904142547.GU4157646@nvidia.com> (raw)
In-Reply-To: <399db967-050d-48dc-afb5-5c77ee9cce65@amd.com>
On Fri, Sep 04, 2026 at 03:43:01PM +0530, Vasant Hegde wrote:
> Jason,
>
>
> On 8/28/2026 5:23 PM, Jason Gunthorpe wrote:
> > On Fri, Aug 28, 2026 at 10:46:48AM +0530, Vasant Hegde wrote:
> >>> Having the driver boot up with all DTEs programmed to identity (eg
> >>> 0'd) and then try to fix them to blocking after the iommu probes
> >>> devices is security backwards.
> >>
> >> During boot, it only sets dte.v bit.
> >
> > First it clears it to fully 0, what does 0 do in HW?
>
> IF DTE is fully zero, then all requests are blocked for that devid.
>
> >
> > It doesn't make sense that you'd pass over the DTEs after
> > probing if the original 0'd DTE was actually blocking?
>
> During boot, it sets certain default values includ dte.v. It doesn't
> clear everything.
?? It starts out with a 0 DTE table? There is no inherited DTE table
except for kdump.
> May be we should just remove ignore_device() completely? as
> - normal boot, its not yet configured, so no DMA is allowed
> - kdump boot, old DTE is still valid and let it continue?
Yes, that makes alot more sense to me.
But this comment is also wrong:
/*
* Order is important here to make sure any unity map requirements are
* fulfilled. The unity mappings are created and written to the device
* table during the iommu_init_pci() call.
*
* After that we call init_device_table_dma() to make sure any
* uninitialized DTE will block DMA, and in the end we flush the caches
* of all IOMMUs to make sure the changes to the device table are
* active.
*/
for_each_pci_segment(pci_seg)
init_device_table_dma(pci_seg);
The DTE starts out with blocking because it starts out as 0. This
isn't making the DTE blocking, it is doing something else. And it is
very suspicious and racey looking to me.
The DTE should start out in the right state before the DTE table is
programmed into HW. After that point the only places changing a DTE
should be inside a device attach attach callback.
Probe and this global scan should not touch the DTE.
Jason
next prev parent reply other threads:[~2026-09-04 14:26 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-24 12:23 [PATCH v3 0/5] iommu/amd: Refactors for ATS robustness Pranjal Shrivastava
2026-08-24 12:23 ` [PATCH v3 1/5] iommu/amd: Refactor device probe and capability initialization Pranjal Shrivastava
2026-08-24 18:13 ` Jason Gunthorpe
2026-08-25 10:24 ` Pranjal Shrivastava
2026-08-25 11:50 ` Jason Gunthorpe
2026-08-25 6:59 ` Vasant Hegde
2026-08-25 10:25 ` Pranjal Shrivastava
2026-08-24 12:23 ` [PATCH v3 2/5] iommu/amd: Fix DTE clearing and rename iommu_ignore_device() Pranjal Shrivastava
2026-08-24 18:13 ` Jason Gunthorpe
2026-08-25 10:32 ` Pranjal Shrivastava
2026-08-25 11:49 ` Jason Gunthorpe
2026-08-25 17:29 ` Pranjal Shrivastava
2026-08-25 17:53 ` Jason Gunthorpe
2026-08-25 19:08 ` Pranjal Shrivastava
2026-08-26 11:28 ` Vasant Hegde
2026-08-26 12:21 ` Jason Gunthorpe
2026-08-28 5:16 ` Vasant Hegde
2026-08-28 11:53 ` Jason Gunthorpe
2026-09-04 10:13 ` Vasant Hegde
2026-09-04 14:25 ` Jason Gunthorpe [this message]
2026-08-24 21:47 ` Samiullah Khawaja
2026-08-25 7:01 ` Vasant Hegde
2026-08-24 12:23 ` [PATCH v3 3/5] iommu/amd: Split probe error paths to preserve IRQ remapping Pranjal Shrivastava
2026-08-24 18:13 ` Jason Gunthorpe
2026-08-25 10:34 ` Pranjal Shrivastava
2026-08-24 12:23 ` [PATCH v3 4/5] iommu/amd: Fail probe on ATS configuration failure Pranjal Shrivastava
2026-08-24 18:13 ` Jason Gunthorpe
2026-08-24 21:46 ` Samiullah Khawaja
2026-08-24 12:23 ` [PATCH v3 5/5] PCI/ATS: Mandate checking pci_ats_supported() before pci_prepare_ats() Pranjal Shrivastava
2026-08-24 18:13 ` Jason Gunthorpe
2026-08-24 18:13 ` [PATCH v3 0/5] iommu/amd: Refactors for ATS robustness Jason Gunthorpe
2026-08-25 10:39 ` Pranjal Shrivastava
2026-08-25 11:51 ` Jason Gunthorpe
2026-08-25 7:06 ` Vasant Hegde
2026-08-25 10:37 ` Pranjal Shrivastava
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=20260904142547.GU4157646@nvidia.com \
--to=jgg@nvidia.com \
--cc=ankit.soni@amd.com \
--cc=bhelgaas@google.com \
--cc=iommu@lists.linux.dev \
--cc=joro@8bytes.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=praan@google.com \
--cc=sashiko-bot@kernel.org \
--cc=skhawaja@google.com \
--cc=suravee.suthikulpanit@amd.com \
--cc=vasant.hegde@amd.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox