[PATCH 0/4] Sort out SMMUv3 ATC invalidation and locking

Will Deacon will at kernel.org
Tue Aug 20 15:45:45 UTC 2019

Hi all,

This series arose from my attempt to remove the 'devices_lock' from the
->unmap() path. In actual fact, I think the current code in mainline
gets this wrong, so I've fixed up the ordering and then removed the lock.
Unfortunately, this relies on my deferred invalidation work so that the
invalidation range is propagated through to the sync callback:


At this point, if we decide to do anything for earier kernels, the easiest
thing is probably to nobble the ATS feature at probe time.

NOTE: this has not been tested, since I don't have access to any systems
capable of ATS!

Feedback welcome,


Cc: Zhen Lei <thunder.leizhen at huawei.com>
Cc: Jean-Philippe Brucker <jean-philippe at linaro.org>
Cc: John Garry <john.garry at huawei.com>
Cc: Robin Murphy <robin.murphy at arm.com>


Will Deacon (4):
  iommu/arm-smmu-v3: Document ordering guarantees of command insertion
  iommu/arm-smmu-v3: Rework enabling/disabling of ATS for PCI masters
  iommu/arm-smmu-v3: Fix ATC invalidation ordering wrt main TLBs
  iommu/arm-smmu-v3: Avoid locking on invalidation path when not using

 drivers/iommu/arm-smmu-v3.c | 105 ++++++++++++++++++++++++++++++++------------
 1 file changed, 77 insertions(+), 28 deletions(-)


More information about the iommu mailing list