From: Pranjal Shrivastava <praan@google.com>
To: iommu@lists.linux.dev, linux-pci@vger.kernel.org
Cc: Will Deacon <will@kernel.org>, Joerg Roedel <joro@8bytes.org>,
Bjorn Helgaas <bhelgaas@google.com>,
Robin Murphy <robin.murphy@arm.com>,
Jason Gunthorpe <jgg@ziepe.ca>,
Mostafa Saleh <smostafa@google.com>,
Nicolin Chen <nicolinc@nvidia.com>,
Samiullah Khawaja <skhawaja@google.com>,
Daniel Mentz <danielmentz@google.com>,
Pasha Tatashin <pasha.tatashin@soleen.com>,
David Matlack <dmatlack@google.com>,
Pranjal Shrivastava <praan@google.com>
Subject: [PATCH v3 0/3] iommu/arm-smmu-v3: Fix ATS robustness and state tracking
Date: Tue, 19 May 2026 13:53:19 +0000 [thread overview]
Message-ID: <20260519135323.1558777-1-praan@google.com> (raw)
This series addresses a set of related ATS robustness issues in the PCI
core and the ARM SMMUv3 driver.
The primary motivation is a state mismatch observed under heavy load
where a failure in pci_enable_ats() leaves the SMMUv3 driver with
inconsistent internal counters (nr_ats_masters), leading to memory
leaks and PCI core warnings during device detach.
While David's recent work [1] addressed the discovery race for specific
quirked devices by moving them to the HEADER phase, gaps remained
regarding how Virtual Functions (VFs) inherit state from their Physical
Functions (PFs). Specifically, pci_ats_supported() did not account for
PF-level quirked status, and pci_prepare_ats() lacked STU validation for
VFs.
This series addresses these gaps and hardens the SMMUv3 driver:
- Patch 1 makes pci_ats_supported() PF-aware, ensuring PF-level
constraints correctly propagate to VFs.
- Patch 2 adds STU validation to pci_prepare_ats() for VFs, ensuring
consistent page shift configurations.
- Patch 3 introduces an 'ats_prepared' gate in the SMMUv3 driver to
ensure that configuration failures at probe result in a clean
fallback to non-ATS mode, preventing domain state pollution.
Thanks,
Pranjal
[1] https://lore.kernel.org/linux-pci/20260403222750.1215002-1-dmatlack@google.com/
v2: https://lore.kernel.org/all/20260504163842.2692314-1-praan@google.com/
Pranjal Shrivastava (3):
PCI/ATS: Ensure pci_ats_supported() is PF-aware for VFs
PCI/ATS: Validate STU for VFs in pci_prepare_ats()
iommu/arm-smmu-v3: Fix ATS state tracking via ats_prepared gate
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 5 +++--
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 1 +
drivers/pci/ats.c | 14 +++++++++++---
3 files changed, 15 insertions(+), 5 deletions(-)
--
2.54.0.563.g4f69b47b94-goog
next reply other threads:[~2026-05-19 13:53 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-19 13:53 Pranjal Shrivastava [this message]
2026-05-19 13:53 ` [PATCH v3 1/3] PCI/ATS: Ensure pci_ats_supported() is PF-aware for VFs Pranjal Shrivastava
2026-05-19 14:41 ` Jason Gunthorpe
2026-05-19 19:02 ` Samiullah Khawaja
2026-05-19 13:53 ` [PATCH v3 2/3] PCI/ATS: Validate STU for VFs in pci_prepare_ats() Pranjal Shrivastava
2026-05-19 14:43 ` Jason Gunthorpe
2026-05-19 19:05 ` Samiullah Khawaja
2026-05-19 13:53 ` [PATCH v3 3/3] iommu/arm-smmu-v3: Fix ATS state tracking via ats_prepared gate Pranjal Shrivastava
2026-05-19 14:44 ` Jason Gunthorpe
2026-05-19 14:55 ` Pranjal Shrivastava
2026-05-19 14:59 ` Jason Gunthorpe
2026-05-19 20:01 ` Samiullah Khawaja
2026-05-20 14:29 ` Pranjal Shrivastava
2026-05-20 14:24 ` Pranjal Shrivastava
2026-05-20 14:51 ` Jason Gunthorpe
2026-05-20 16:24 ` Pranjal Shrivastava
2026-05-20 16:31 ` Jason Gunthorpe
2026-05-22 16:14 ` Pranjal Shrivastava
2026-05-23 12:34 ` Jason Gunthorpe
2026-05-25 18:38 ` 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=20260519135323.1558777-1-praan@google.com \
--to=praan@google.com \
--cc=bhelgaas@google.com \
--cc=danielmentz@google.com \
--cc=dmatlack@google.com \
--cc=iommu@lists.linux.dev \
--cc=jgg@ziepe.ca \
--cc=joro@8bytes.org \
--cc=linux-pci@vger.kernel.org \
--cc=nicolinc@nvidia.com \
--cc=pasha.tatashin@soleen.com \
--cc=robin.murphy@arm.com \
--cc=skhawaja@google.com \
--cc=smostafa@google.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).