return ret;
}
- static int amd_iommu_unmap(struct iommu_domain *dom, unsigned long iova,
- int gfp_order)
+ static size_t amd_iommu_unmap(struct iommu_domain *dom, unsigned long iova,
+ size_t page_size)
{
struct protection_domain *domain = dom->priv;
- unsigned long page_size, unmap_size;
+ size_t unmap_size;
- page_size = 0x1000UL << gfp_order;
-
+ if (domain->mode == PAGE_MODE_NONE)
+ return -EINVAL;
+
mutex_lock(&domain->api_lock);
unmap_size = iommu_unmap_page(domain, iova, page_size);
mutex_unlock(&domain->api_lock);