]> Pileus Git - ~andy/linux/commit
iommu: Split iommu_unmaps
authorAlex Williamson <alex.williamson@redhat.com>
Tue, 18 Jun 2013 01:57:34 +0000 (19:57 -0600)
committerJoerg Roedel <joro@8bytes.org>
Thu, 20 Jun 2013 15:26:25 +0000 (17:26 +0200)
commitbd13969b952491149e641d3dab24fa59b98f82e9
tree0b4ce920b7c668ed94d5c4f91dfe0e654335af30
parent7d132055814ef17a6c7b69f342244c410a5e000f
iommu: Split iommu_unmaps

iommu_map splits requests into pages that the iommu driver reports
that it can handle.  The iommu_unmap path does not do the same.  This
can cause problems not only from callers that might expect the same
behavior as the map path, but even from the failure path of iommu_map,
should it fail at a point where it has mapped and needs to unwind a
set of pages that the iommu driver cannot handle directly.  amd_iommu,
for example, will BUG_ON if asked to unmap a non power of 2 size.

Fix this by extracting and generalizing the sizing code from the
iommu_map path and use it for both map and unmap.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Joerg Roedel <joro@8bytes.org>
drivers/iommu/iommu.c