summaryrefslogtreecommitdiff
path: root/drivers/iommu/irq_remapping.c
diff options
context:
space:
mode:
authorRobin Murphy <robin.murphy@arm.com>2018-10-11 16:56:42 +0100
committerJoerg Roedel <jroedel@suse.de>2018-11-06 16:30:39 +0100
commit5d95f40e62e4f2ed3053e9b178471669736cf636 (patch)
tree9e4e0c2dab5030cdd9394a75a9c4e8688bd88696 /drivers/iommu/irq_remapping.c
parent651022382c7f8da46cb4872a545ee1da6d097d2a (diff)
iommu: Do physical merging in iommu_map_sg()
The original motivation for iommu_map_sg() was to give IOMMU drivers the chance to map an IOVA-contiguous scatterlist as efficiently as they could. It turns out that there isn't really much driver-specific business involved there, so now that the default implementation is mandatory let's just improve that - the main thing we're after is to use larger pages wherever possible, and as long as domain->pgsize_bitmap reflects reality, iommu_map() can already do that in a generic way. All we need to do is detect physically-contiguous segments and batch them into a single map operation, since whatever we do here is transparent to our caller and not bound by any segment-length restrictions on the list itself. Speaking of efficiency, there's really very little point in duplicating the checks that iommu_map() is going to do anyway, so those get cleared up in the process. Signed-off-by: Robin Murphy <robin.murphy@arm.com> Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'drivers/iommu/irq_remapping.c')
0 files changed, 0 insertions, 0 deletions