diff options
author | Will Deacon <[email protected]> | 2019-08-20 16:28:54 +0100 |
---|---|---|
committer | Will Deacon <[email protected]> | 2019-08-22 18:16:11 +0100 |
commit | cdb8a3c3463563b7bdb6f653bf4b0ffa3a95f366 (patch) | |
tree | eef77dbb6f7518f0d9756bbe5cf061d54ebc1e9d /include/linux/fpga/fpga-bridge.h | |
parent | 353e3cf8590cf182a9f42e67993de3aca91e8090 (diff) |
iommu/arm-smmu-v3: Avoid locking on invalidation path when not using ATS
When ATS is not in use, we can avoid taking the 'devices_lock' for the
domain on the invalidation path by simply caching the number of ATS
masters currently attached. The fiddly part is handling a concurrent
->attach() of an ATS-enabled master to a domain that is being
invalidated, but we can handle this using an 'smp_mb()' to ensure that
our check of the count is ordered after completion of our prior TLB
invalidation.
This also makes our ->attach() and ->detach() flows symmetric wrt ATS
interactions.
Acked-by: Robin Murphy <[email protected]>
Signed-off-by: Will Deacon <[email protected]>
Diffstat (limited to 'include/linux/fpga/fpga-bridge.h')
0 files changed, 0 insertions, 0 deletions