Linux PCI subsystem development
 help / color / mirror / Atom feed
* [PATCH v3 0/3] iommu/arm-smmu-v3: Fix ATS robustness and state tracking
@ 2026-05-19 13:53 Pranjal Shrivastava
  2026-05-19 13:53 ` [PATCH v3 1/3] PCI/ATS: Ensure pci_ats_supported() is PF-aware for VFs Pranjal Shrivastava
                   ` (2 more replies)
  0 siblings, 3 replies; 20+ messages in thread
From: Pranjal Shrivastava @ 2026-05-19 13:53 UTC (permalink / raw)
  To: iommu, linux-pci
  Cc: Will Deacon, Joerg Roedel, Bjorn Helgaas, Robin Murphy,
	Jason Gunthorpe, Mostafa Saleh, Nicolin Chen, Samiullah Khawaja,
	Daniel Mentz, Pasha Tatashin, David Matlack, Pranjal Shrivastava


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2026-05-25 18:38 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-19 13:53 [PATCH v3 0/3] iommu/arm-smmu-v3: Fix ATS robustness and state tracking Pranjal Shrivastava
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox