Alex/Joerg, On 1/24/18 5:04 AM, Alex Williamson wrote:
+static size_t try_unmap_unpin_fast(struct vfio_domain *domain, dma_addr_t iova, + size_t len, phys_addr_t phys, + struct list_head *unmapped_regions) +{ + struct vfio_regions *entry; + size_t unmapped; + + entry = kzalloc(sizeof(*entry), GFP_KERNEL); + if (!entry) + return -ENOMEM;size_t is unsigned, so pushing -ENOMEM out though this unsigned function and the callee interpreting it as unsigned, means we're going to see this as a very large unmap, not an error condition. Looks like the IOMMU API has problems in this space too, ex. iommu_unmap(), Joerg?
I can clean up the APIs to use ssize_t, where it can return errors. Suravee

