iommu: Introduce struct iommu_iotlb_gather for batching TLB flushes
authorWill Deacon <will@kernel.org>
Tue, 2 Jul 2019 15:43:48 +0000 (16:43 +0100)
committerWill Deacon <will@kernel.org>
Wed, 24 Jul 2019 12:35:27 +0000 (13:35 +0100)
commita7d20dc19d9ea7012227be5144353012ffa3ddc4
tree1068bf66db02fd09120ab41353378e648b6e781f
parent298f78895b081911e0b3605f07d79ebd3d4cf7b0
iommu: Introduce struct iommu_iotlb_gather for batching TLB flushes

To permit batching of TLB flushes across multiple calls to the IOMMU
driver's ->unmap() implementation, introduce a new structure for
tracking the address range to be flushed and the granularity at which
the flushing is required.

This is hooked into the IOMMU API and its caller are updated to make use
of the new structure. Subsequent patches will plumb this into the IOMMU
drivers as well, but for now the gathering information is ignored.

Signed-off-by: Will Deacon <will@kernel.org>
drivers/iommu/dma-iommu.c
drivers/iommu/iommu.c
drivers/vfio/vfio_iommu_type1.c
include/linux/iommu.h