iommu/dma: Implement scatterlist segment merging
authorRobin Murphy <robin.murphy@arm.com>
Mon, 11 Apr 2016 11:32:31 +0000 (12:32 +0100)
committerJoerg Roedel <jroedel@suse.de>
Mon, 9 May 2016 10:17:49 +0000 (12:17 +0200)
commit809eac54cdd62c67afea1e17080e681dfa33dc09
tree018d61211dcb6bdbfb37e92d986fc79083a50f06
parent44549e8f5eea4e0a41b487b63e616cb089922b99
iommu/dma: Implement scatterlist segment merging

Stop wasting IOVA space by over-aligning scatterlist segments for a
theoretical worst-case segment boundary mask, and instead take the real
limits into account to merge consecutive segments wherever appropriate,
so our callers can benefit from getting back nicely simplified lists.

This also represents the last piece of functionality wanted by users of
the current arch/arm implementation, thus brings us a small step closer
to converting that over to the common code.

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/dma-iommu.c