diff options
| -rw-r--r-- | drivers/iommu/iommu.c | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index ab1fa19ddddb..fbe9ca734f8f 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c | |||
| @@ -807,20 +807,18 @@ int iommu_map(struct iommu_domain *domain, unsigned long iova, | |||
| 807 | * size of the smallest page supported by the hardware | 807 | * size of the smallest page supported by the hardware |
| 808 | */ | 808 | */ |
| 809 | if (!IS_ALIGNED(iova | paddr | size, min_pagesz)) { | 809 | if (!IS_ALIGNED(iova | paddr | size, min_pagesz)) { |
| 810 | pr_err("unaligned: iova 0x%lx pa 0x%lx size 0x%lx min_pagesz " | 810 | pr_err("unaligned: iova 0x%lx pa 0x%pa size 0x%zx min_pagesz 0x%x\n", |
| 811 | "0x%x\n", iova, (unsigned long)paddr, | 811 | iova, &paddr, size, min_pagesz); |
| 812 | (unsigned long)size, min_pagesz); | ||
| 813 | return -EINVAL; | 812 | return -EINVAL; |
| 814 | } | 813 | } |
| 815 | 814 | ||
| 816 | pr_debug("map: iova 0x%lx pa 0x%lx size 0x%lx\n", iova, | 815 | pr_debug("map: iova 0x%lx pa 0x%pa size 0x%zx\n", iova, &paddr, size); |
| 817 | (unsigned long)paddr, (unsigned long)size); | ||
| 818 | 816 | ||
| 819 | while (size) { | 817 | while (size) { |
| 820 | size_t pgsize = iommu_pgsize(domain, iova | paddr, size); | 818 | size_t pgsize = iommu_pgsize(domain, iova | paddr, size); |
| 821 | 819 | ||
| 822 | pr_debug("mapping: iova 0x%lx pa 0x%lx pgsize %lu\n", iova, | 820 | pr_debug("mapping: iova 0x%lx pa 0x%pa pgsize 0x%zx\n", |
| 823 | (unsigned long)paddr, (unsigned long)pgsize); | 821 | iova, &paddr, pgsize); |
| 824 | 822 | ||
| 825 | ret = domain->ops->map(domain, iova, paddr, pgsize, prot); | 823 | ret = domain->ops->map(domain, iova, paddr, pgsize, prot); |
| 826 | if (ret) | 824 | if (ret) |
| @@ -857,13 +855,12 @@ size_t iommu_unmap(struct iommu_domain *domain, unsigned long iova, size_t size) | |||
| 857 | * by the hardware | 855 | * by the hardware |
| 858 | */ | 856 | */ |
| 859 | if (!IS_ALIGNED(iova | size, min_pagesz)) { | 857 | if (!IS_ALIGNED(iova | size, min_pagesz)) { |
| 860 | pr_err("unaligned: iova 0x%lx size 0x%lx min_pagesz 0x%x\n", | 858 | pr_err("unaligned: iova 0x%lx size 0x%zx min_pagesz 0x%x\n", |
| 861 | iova, (unsigned long)size, min_pagesz); | 859 | iova, size, min_pagesz); |
| 862 | return -EINVAL; | 860 | return -EINVAL; |
| 863 | } | 861 | } |
| 864 | 862 | ||
| 865 | pr_debug("unmap this: iova 0x%lx size 0x%lx\n", iova, | 863 | pr_debug("unmap this: iova 0x%lx size 0x%zx\n", iova, size); |
| 866 | (unsigned long)size); | ||
| 867 | 864 | ||
| 868 | /* | 865 | /* |
| 869 | * Keep iterating until we either unmap 'size' bytes (or more) | 866 | * Keep iterating until we either unmap 'size' bytes (or more) |
| @@ -876,8 +873,8 @@ size_t iommu_unmap(struct iommu_domain *domain, unsigned long iova, size_t size) | |||
| 876 | if (!unmapped_page) | 873 | if (!unmapped_page) |
| 877 | break; | 874 | break; |
| 878 | 875 | ||
| 879 | pr_debug("unmapped: iova 0x%lx size %lx\n", iova, | 876 | pr_debug("unmapped: iova 0x%lx size 0x%zx\n", |
| 880 | (unsigned long)unmapped_page); | 877 | iova, unmapped_page); |
| 881 | 878 | ||
| 882 | iova += unmapped_page; | 879 | iova += unmapped_page; |
| 883 | unmapped += unmapped_page; | 880 | unmapped += unmapped_page; |
