• A
    iommu: Split iommu_unmaps · bd13969b
    Alex Williamson 提交于
    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: NAlex Williamson <alex.williamson@redhat.com>
    Signed-off-by: NJoerg Roedel <joro@8bytes.org>
    bd13969b
iommu.c 24.9 KB