Thread (48 messages) 48 messages, 6 authors, 2026-04-10

Re: [PATCH v2 6/7] iommu/arm-smmu-v3: Introduce master->ats_broken flag

From: Nicolin Chen <hidden>
Date: 2026-03-18 20:01:01
Also in: linux-acpi, linux-iommu, linux-pci, lkml

On Wed, Mar 18, 2026 at 07:39:53AM +0000, Tian, Kevin wrote:
quoted
From: Nicolin Chen <redacted>
Sent: Wednesday, March 18, 2026 3:16 AM
@@ -3060,6 +3079,14 @@ static bool arm_smmu_ats_supported(struct
arm_smmu_master *master)
 	if (!(fwspec->flags & IOMMU_FWSPEC_PCI_RC_ATS))
 		return false;

+	/*
+	 * Reject any new ATS request because ATC invalidation was timed
out.
+	 * The PCI device should go through a recovery (reset) and notify the
+	 * SMMUv3 driver via a reset_device_done callback.
+	 */
+	if (READ_ONCE(master->ats_broken))
+		return false;
+
"Reject any new ATS request" means any new request to enable ATS
on this device, instead of rejecting any new ATS translation request,
correct? next patch does the actual work to block ATS...
Yes. We won't call pci_enable_ats() due to !arm_smmu_ats_supported.
So, there shouldn't be any new ATS request any more.

I will change it to:
	/*
	 * Do not enable ATS if master->ats_broken is set. The PCI device should
	 * go through a recovery (reset) that shall notify the SMMUv3 driver via
	 * a reset_device_done callback.
	 */

Thanks
Nicolin
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help