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

Nicolin Chen
2026-03-18T20:01:02Z

On Wed, Mar 18, 2026 at 07:39:53AM +0000, Tian, Kevin wrote:
> > From: Nicolin Chen <nicolinc@nvidia.com>
> > 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