Subject: Re: [PATCH v4 00/24] iommu/arm-smmu-v3: Quarantine device upon ATC invalidation timeout

From: Nicolin Chen <[email-masked]>
Date: Tue, 19 May 2026 23:38:35 -0700

On Wed, May 20, 2026 at 03:59:43AM +0000, Tian, Kevin wrote:
> > From: Nicolin Chen <[email-masked]>
> > Sent: Tuesday, May 19, 2026 11:39 AM
> >
> > Changelog
> > v4:
> >  * Rebase on Joerg's IOMMU "fixes" branch
> >  * Rebase on Jason's SMMUv3 cmd_ent series
> >    https://lore.kernel.org/all/0-v2-47b2bf710ad5+716ac-
> > [email-masked]/
> >  * [PCI] Don't suspend IOMMU in probe mode
> >  * [iommu] kfree_rcu() iommu_group
> >  * [iommu] Convert gdev->blocked to enum gdev_blocked
> >  * [iommu] Use disable_work_sync() to fix UAF and ref leak
> >  * [iommu] Gate done() transitions to preserve BLOCKED_BROKEN
> >  * [iommu] Decrement recovery_cnt when unplugging a blocked gdev
> >  * [iommu] Drop racy dev_has_iommu() in iommu_report_device_broken()
> >  * [iommu] Add gdev->broken_pending to skip worker after racing recovery
> >  * [smmuv3] Add master->ats_invs scratch
> >  * [smmuv3] Add arm_smmu_cmdq_batch_issue() wrapper
> >  * [smmuv3] Force per-flush sync for has_ats batches
> >  * [smmuv3] Serialize STE.EATS and ats_broken updates
> >  * [smmuv3] Co-clear pending CMDQ_ERR from cmdq issuer
> >  * [smmuv3] Add invs and has_ats to arm_smmu_cmdq_batch
> >  * [smmuv3] Move arm_smmu_invs_for_each_entry to header
> >  * [smmuv3] Set master->ats_broken after clearing STE.EATS
> >  * [smmuv3] Issue CFGI_STE via arm_smmu_cmdq_issue_cmd_with_sync()
> >  * [smmuv3] Keep "smmu" pointer in arm_smmu_inv but add "master" for
> > ATS
> 
> Not check the detail yet, but this v4 more than doubles the number of
> patches in v3. Are they all necessary to be in one series? any chance to
> split to ease the review...

Ah, sorry. Mostly these are dealing with racing and corner cases in
the async design...

Jason has suggested to drop quite a few things. So, I will respin a
v5 that should be much smaller. Let's ignore this v4 for now.

Thanks
Nicolin