Hi,
here is a patch-set to make the AMD IOMMU driver use the
generic IOVA allocator, which is already used in the Intel
VT-d driver and a few other places.
The main reason for the conversion is to make the driver
benefit from the recent scalability improvements to the IOVA
code. Some of these improvements happened in the Intel VT-d
driver, these are not re-used but, for now, re-implemented.
This leaves more room for merging things together into
common code for the future.
The allocator that was previously used will be removed with
these patches.
Please review.
Thanks,
Joerg
Joerg Roedel (20):
iommu: Add apply_dm_region call-back to iommu-ops
iommu/amd: Select IOMMU_IOVA for AMD IOMMU
iommu/amd: Allocate iova_domain for dma_ops_domain
iommu/amd: Create a list of reserved iova addresses
iommu/amd: Implement apply_dm_region call-back
iommu/amd: Pass gfp-flags to iommu_map_page()
iommu/amd: Remove special mapping code for dma_ops path
iommu/amd: Make use of the generic IOVA allocator
iommu/amd: Remove other remains of old address allocator
iommu/amd: Remove align-parameter from __map_single()
iommu/amd: Set up data structures for flush queue
iommu/amd: Allow NULL pointer parameter for domain_flush_complete()
iommu/amd: Implement flush queue
iommu/amd: Implement timeout to flush unmap queues
iommu/amd: Introduce dir2prot() helper
iommu/amd: Optimize map_sg and unmap_sg
iommu/amd: Use dev_data->domain in get_domain()
iommu/amd: Handle IOMMU_DOMAIN_DMA in ops->domain_free call-back
iommu/amd: Flush iova queue before releasing dma_ops_domain
iommu/amd: Use container_of to get dma_ops_domain
drivers/iommu/Kconfig | 1 +
drivers/iommu/amd_iommu.c | 976 ++++++++++++++++------------------------
drivers/iommu/amd_iommu_types.h | 1 -
drivers/iommu/iommu.c | 3 +
include/linux/iommu.h | 3 +
5 files changed, 387 insertions(+), 597 deletions(-)