From: Pranjal Shrivastava <praan@google.com>
To: iommu@lists.linux.dev, linux-pci@vger.kernel.org,
linux-kernel@vger.kernel.org
Cc: Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>,
Vasant Hegde <vasant.hegde@amd.com>,
Ankit Soni <ankit.soni@amd.com>,
Jason Gunthorpe <jgg@nvidia.com>,
Bjorn Helgaas <bhelgaas@google.com>,
Samiullah Khawaja <skhawaja@google.com>,
Pranjal Shrivastava <praan@google.com>
Subject: [PATCH v4 0/4] iommu/amd: Refactors for ATS robustness
Date: Thu, 10 Sep 2026 14:26:51 +0000 [thread overview]
Message-ID: <20260910142655.3281464-1-praan@google.com> (raw)
This series forms the second half of the subsystem-wide ATS robustness
updates. The first part (focusing on the core subsystem, Intel, and ARM
SMMUv3) has already been merged upstream [1]. This half addresses the
AMD IOMMU driver and standardizes the PCI ATS API.
In v2, the series has been significantly restructured based on feedback
on v1.
[v4]
- https://lore.kernel.org/all/20260824122347.1588592-1-praan@google.com/
- Dropped iommu_ignore_device() and dropped patch 3 per discussion with
Jason and Vasant.
- Renamed iommu_lookup_device() to lookup_device().
- Cleaned up amd_iommu_probe_device() to return error pointers directly.
- Collected Reviewed-by tags from Jason, Vasant and Sami.
[v3]
- Collected Reviewed-by tags from Vasant.
- Added a comment explaining why devices without DMA translation support
are not ignored (to preserve interrupt remapping) per Vasant's feedback.
- Renamed iommu_disable_device_dma() to iommu_disable_device() to
accurately reflect that it disables both DMA and interrupt remapping.
[v2]
- https://lore.kernel.org/all/20260814015647.3370124-1-praan@google.com/
- Patch 1 Refctors the probe path, isolating capabilities into
iommu_init_device_caps().
- Patch 2 renames iommu_ignore_device() to iommu_disable_device_dma().
Following Jason's suggestion, it invalidates the hardware DTE by
clearing the Valid bit (lower 128 bits) followed by the upper
128 bits.
- Patch 3 splits the probe error paths to ensure that devices with
config failures (like PD_MODE_NONE or ATS mismatches) can preserve
their rlookup_table entries, successfully keeping IRQ remapping
functional for bypassed devices.
- Patch 4 implements the "Fail Hard" pattern for ATS in the AMD driver,
failing the probe and throwing a WARN_ON() upon ATS configuration or
enablement failures.
- Patch 5 enforces the checking of pci_ats_supported() prior to calling
pci_prepare_ats() across the entire kernel PCI subsystem.
[v1]
- https://lore.kernel.org/all/20260601134204.2150602-1-praan@google.com/
Thanks,
Praan
[1] https://lore.kernel.org/all/20260615235037.259909-1-praan@google.com/
Pranjal Shrivastava (4):
iommu/amd: Refactor device probe and capability initialization
iommu/amd: Remove iommu_ignore_device()
iommu/amd: Fail probe on ATS configuration failure
PCI/ATS: Mandate checking pci_ats_supported() before pci_prepare_ats()
drivers/iommu/amd/iommu.c | 164 +++++++++++++++++++-------------------
drivers/pci/ats.c | 6 +-
2 files changed, 86 insertions(+), 84 deletions(-)
--
2.55.0.1003.g10538fe699-goog
next reply other threads:[~2026-09-10 14:26 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-10 14:26 Pranjal Shrivastava [this message]
2026-09-10 14:26 ` [PATCH v4 1/4] iommu/amd: Refactor device probe and capability initialization Pranjal Shrivastava
2026-09-10 14:35 ` sashiko-bot
2026-09-10 14:26 ` [PATCH v4 2/4] iommu/amd: Remove iommu_ignore_device() Pranjal Shrivastava
2026-09-10 14:40 ` sashiko-bot
2026-09-10 14:40 ` Jason Gunthorpe
2026-09-11 4:26 ` Vasant Hegde
2026-09-10 14:26 ` [PATCH v4 3/4] iommu/amd: Fail probe on ATS configuration failure Pranjal Shrivastava
2026-09-10 14:38 ` sashiko-bot
2026-09-10 14:26 ` [PATCH v4 4/4] PCI/ATS: Mandate checking pci_ats_supported() before pci_prepare_ats() Pranjal Shrivastava
2026-09-10 14:35 ` 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=20260910142655.3281464-1-praan@google.com \
--to=praan@google.com \
--cc=ankit.soni@amd.com \
--cc=bhelgaas@google.com \
--cc=iommu@lists.linux.dev \
--cc=jgg@nvidia.com \
--cc=joro@8bytes.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=skhawaja@google.com \
--cc=suravee.suthikulpanit@amd.com \
--cc=vasant.hegde@amd.com \
--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.